mawasiの備忘録

忘れやすい自分の為のプログラムやその他諸々に関するメモ

droidkaigi2017 1日目 セッションまとめリスト

自分が後で読む用のリストです。

被りもあるかもしれません。

【1日目】DroidKaigi 2017講演スライドまとめ

大規模アプリのリノベーション

逆引き マテリアル デザイン

How to apply DDD to Android Application Development/あんざいゆき(yanzm)

“解剖Kotlin ~バイトコードを読み解く~ // Speaker Deck”

React Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか

Reverse engineering is not just for hackers

Viewを動的に変化させるアプローチ

Androidアプリ開発の体力づくり💪

ここから抜けてるセッションは

【1日目】DroidKaigi 2017講演スライドまとめ

の方で補完

Androidアプリ開発は趣味でやってる程度ですが行ってみたかったです。

Xamarin Android開発関係参考記事まとめ 2017/02/04更新

Androidアプリ開発中に参考にしたサイト、記事をメモとしてまとめておきます。

・Xamarin

Xamarin公式

Xamarin.Android APIs

Xamarin Group (GitHub)

Japan Xamarin User Group

Xamarin 学習用リソースまとめ (Xamarin 日本語情報)

Android Emulator関連

Android Studioのエミュレータ(Android 4.4.2)で日本語入力を行う! (iDEACLOUD)

Androidネットワーク機能関連

Detect Network Connection (Xamarin公式)

(Android)Networkの通信状況をしっかり見る (Qiita)

【メモ】Xamarin.Android でネットワークの状態を取得するには (Xamarin 日本語情報)

How to Turn off, Turn on Wifi in Android (stacktips)

Androidでネットワーク接続状態が変わったイベントを取得する(接続状態の変化を検出する) (酢ろぐ!)

・MobileData通信関連

データ通信(3G)のオン/オフを切り替える (コンピュータクワガタ)

Enable/Disable Mobile Data (GPRS) using code (stack overflow)

Androidのモバイルネットワークを制御するAdd Star (@yanaginの日記)

Xamarin Android 3G helper (iWayneo)

How to disable Mobile Data on Android with Xamarin (stack overflow)

新規追加

Android L (5.x) Turn ON/OFF “Mobile Data” programmatically (stack overflow)

The setMobileDataEnabled method is no longer callable as of Android L and later (stack overflow)

Lollipop以前と以降でMobileData通信のOn/Off実装が違ってくるようです。

Xamarin for VisualStudioでHTTP GET (Qiita)

Widget関連

Androidでの簡易なWidget作り方 (Qiita)

Android AppWidget (Y.A.M の 雑記帳)

Android View関連

トグルスイッチを利用して設定を変更する (TechBooster)

Android Vulkan

Vulkanを試してみた (株式会社カブク)

Xamarin for Visual Studioでandroid開発環境構築メモ

まずはVisual Studio 2015のインストーラからcloss platform関連のSDKなどをインストール。

Visual Studioを起動し、File -> New -> Project

プロジェクトテンプレートから

Visual C# -> Android -> BlankApp(Android)

もしくは

Visual C# -> Cross-Platform -> Blank Xaml App(Xamarin.Forms Shared)

を選択してプロジェクト作成する。

Xamarinプロジェクト立ち上げ時にXamarin for Visual Studioのアップデート通知が来ることがある。

「クリックすればアップデートできるよ」的なメッセージが表示されるけど、アップデートできないので手動で行う。(2017/1/16現在)

visual studioを立ち上げ、

Tools -> Options -> Xamarin -> Other

項目の一番上がアップデート関連になってるので、[Check Now]をクリックでアップデートする。

Compile versionをAndroid API 24以上にするとJDK8が必要になる。

自分がVisual StudioをインストールしたときはJDK7がインストールされたので、Android API 24以上を使用する場合は手動でJDK8をインストールする。

次にAndroid Emulatorのセットアップ。

Windows10の場合Hyper-VがあるのでVisual Studioインストール時にVisual Studio Emulator for Androidが入るのでそれを使う。

ただ、開発PCがSurface Pro4の場合、そのままではEmulatorにデバッガが接続できないので、以下の設定を行う。

まずVIsual Studioプロジェクト側の設定で

Solution Explorer -> Properties -> Android Options

Use Fast Deployment(debug mode only)のチェックを外す。

次にHyper-Vマネージャをスタートアップメニューから起動。

リストアップされているエミュレータから自分が使いたいやつを選択して右クリック

設定 -> プロセッサ- > 互換性 -> 項目右の「プロセッサバージョンが異なる物理コンピュータへ移行する」にチェックを入れる。

Windows7エミュレータを使う場合、Hyper-Vが無くてVisual Studio Emulator for Androidが使えないので代わりにXamarin Android Playerをインストールする。

と思ったらXamarin Android Player結構前からDeprecatedだったみたいでインストーラが見つからないので、しょうがないのでADVマネージャでx86系のエミュレータを作成して使う。

Debug on an Emulator

参考記事

Fix for “could not connect to the debugger” while deploying Xamarin Forms apps to the Visual Studio Android Emulator

Xamarin for Visual Studioのアップデート方法

C#の各種Timerについて

C#で提供されているTimerについて

 

1. System.Windows.Forms.Timerは同期処理

2. System.Threading.Timerは非同期処理

3. System.Timers.Timerは非同期処理

 

2. と3. は非同期処理なので、Timerに設定したイベント内の処理時間がタイマー間隔より長かった場合、複数スレッドが作成されることになる。

もしタイマーでシーケンシャルに処理されることを意図した処理なのであればLock処理してやる必要がある。

 

以下、System.Timers.Timerを使用したサンプル

 

参考記事

galife - C# の Timer 種類別 特徴 と 使い方