これは、[学生さん・初心者さん大歓迎!]Xamarin Advent Calendar 2016の24日目の記事です。 先日は Xamarin.Forms上でHello World – SDD(Sleep-Driven Development)… でした。 Windows 10 UWPアプリのライブタイルをXamarin.FormsのAndroidアプリ側で実装する案をまとめてみます。これまでに自力で調べられた範囲での案なので、これ以外にもっとよい方法があるかもしれませんし、既知の方法かもしれませんがその点はご了承ください。 お詫び 記事を書いてる途中で、Visual Studio 2015でサンプルコードのソリューションを開けなくなり、さらに新しいソリューションも作成が終わらないトラブルに見舞われています。そのため、サンプルコードとその実行結果をおみせできない状況です。トラブルが直ったら、サンプルコードをGitHubに上げて、実行結果のスクリーンショットを掲載したいと思います。 また、記事中のコードの断片もビルドが通ってないので、誤りがあるかもしれません。これも後日直したいと思います。 Xamarin.Formsを窓から放り投げたい気分ですが、気を取り直して記事を進めます。Read More →

これは、Python Advent Calendar 2016の22日目の記事です。 MicroPythonスクリプトをマイコンボードに配置してPCから切り離した状態で実行させる方法と、その応用例として寿司を回してみた例を紹介します。 MicroPythonでのマイコンアプリ開発 Web、機械学習、数値計算をはじめ、様々な分野で利用されているPythonですが、ken5owataさんのPython Advent Calendar 2016の10日目の記事「micropythonを始めよう(ESP8266編)」で紹介されているように、MicroPythonを使ってマイコンのアプリを開発することもできます。 MicroPythonの詳細は先ほどの記事で説明されているので割愛しますが、国内で安価に入手できるESP8266に対応しているメリットがあると思います。今回もESPr Developer(ESP-WROOM-02開発ボード)を使って説明をします。なお、先ほどの記事でも書かれていますが、MicroPythonファームウェアヘの更新で工事設計認証に影響を及ぼす可能性がある点は注意が必要です。この点がクリアされるといいのですが。 MicroPythonボードへのスクリプトの配置 MicroPythonはPCとシリアル接続して、REPL(Read Evaluate Print Loopの略)を使ってPCから対話的にPythonスクリプトを評価・実行できる特徴があります。MicroPythonを学習したり、コードを検証しているときはとても便利な機能なのですが、マイコンをPCから切り離してガジェットとして動作させるときには使えない方法です。 そこで、スクリプトをESP8266に配置して、PCと接続されていない状態でも実行できる方法がないか調べてみて、見つけたツールがadafrui-ampyです。 (参考)Adafruitによる解説記事 ampyはシリアル通信を用いて、MicroPythonボードのファイルを操作したり、指定したPC上のPythonスクリプトをMicroPythonボードで実行できるツールです。ボード上のファイル操作をできるツールは他にありますが、PC上のファイルを指定してボードで実行できる機能はampyの特徴かと思います。Read More →

これは、Windows 10 Mobile / Windows Phone Advent Calendar 2016の7日目の記事です。 StateTriggersでの画面制御 Windows 10 UWPでは、VisualStateManagerでのVisualStateの定義にStateTriggersが追加されて、コントロールがVisualStateの状態になるトリガーを記述することができるようになりました。 StateTriggersのサンプルコードは、画面の幅・高さを扱うAdaptiveTriggerを使った例が多いのですが、他のStateTriggersを作成して組み合わせることで、それ以外の条件に応じてレイアウト変更などの画面制御をXAMLで行うことができます。 既に広く知られた手法かとも思ったのですが、Webを検索しても詳しく書いた例が少ないため、参考として、画面を回転した場合と、ContinuumやPCで表示した場合のそれぞれについて、StateTriggersを使ったXAMLベースでの画面レイアウト変更を行う方法を紹介します。 サンプルアプリの画面仕様 今回、例として作成するアプリの画面仕様は以下の通りです。画面が広いContinuumやPC画面では、2画面を1つにまとめて表示する仕様を想定しました。 リストのあるマスター画面と、選択された項目の情報を表示する詳細画面から構成される。 マスター画面は、ロゴの画像とリストから構成される。ポートレート表示では縦に並べて、ランドスケープ表示では横に並べる。 詳細画面はテキスト欄から構成される。Read More →

Windows 10 UWPアプリのタイル通知を、Androidではウィジェットに置き換える方法を調べてたので、そのメモ。 XamarinでのAndroidウィジェット作成 作成方法 調べた範囲では、プラットフォーム固有機能のAndroidウィジェットは Xamarin.Formsで作成できなくて、公式サンプルのSimple Widgetのように、Xamarin.Androidで作成できる模様。 サンプルの構成 重要なファイルは以下の模様。 Resources/xml/widget_word.xml ウィジェットの設定をするファイル。更新間隔はandroid:updatePeriodMillisで指定する。 <?xml version=”1.0″ encoding=”utf-8″?> <appwidget-provider xmlns:android=”http://schemas.android.com/apk/res/android” android:minWidth=”294dip” android:minHeight=”72dip” android:updatePeriodMillis=”86400000″Read More →

Windows 10 MobileとAndroidの両方にアプリをリリースできるよう、Xamarin.Formsを学習してます。 その学習で得たことを書いていきます。 ソリューションの作成 新しいプロジェクト>テンプレート>Visual C#>Prismから"Prism Unity App (Xamarin.Forms)"を選択する。 表示されない場合、Xamarin.Forms Templateの拡張機能が必要かも。 ライブラリの追加 アプリから共通に使うライブラリは、PCLとして追加する。新しいプロジェクトの追加>Visual C#>Windowsから"クラスライブラリ(iOS、Android、Windowsのポータブル)"を選択する。 これをXamarin.Formsアプリの共通ライブラリプロジェクトから参照すればよいが、このままではエラーが出るので、ターゲットを合わせる必要がある(Silverlightを追加)

Windows 10 MobileとAndroidの両方にアプリをリリースできるよう、Xamarin.Formsを学習してます。 その学習で得たことを書いていきます。 IntelliSenseを使う方法 Visual Studio 2015 Update3で作成したXamarin.Forms(v2.3.3.168)のソリューションで、XAMLでのIntelliSenseが効かなくて困ってたのですが、Twitterでぼやいてたところ、こんな返事が。 なぜか開くエディターをソースコード(テキスト)エディターにするとIntellsence効きますね。謎ですが。。。 pic.twitter.com/GbG9nfOI6c — Atsushi Nakamura (@nuits_jp) November 29, 2016

11月19日に豊洲のルネサス半導体トレーニングセンターにて、GR-CITRUS発売記念のワークショップに参加してきました。 当日は、GR-CITRUSと、WiFiとSDカードスロットを搭載した拡張モジュールのWA-MIKAN、あと温度などのセンサーを借りて、GR-CITRUSでのプログラミングを体験しました。その感想と、今後やりたいことをまとめてみます。 GR-CITRUSの機能 GR-CITRUSのピン配置を見ると、シリアル4個/I2C 5個/SPI1個(共用あり)、あとアナログ入力4ピン/アナログ出力7ピン/デジタル入出力が20ピン(共用あり)と入出力端子はこれで十分かなと思います。 GR-CITRUSに書き込んだプログラムは、ボード上のジャンパーをショート(ハーフピッチのスイッチを取り付けると便利なようです)させるとPCから切り離して動作させられるようです。 開発環境 GR-CITRUSのプログラミングは3種類あるようです。 WebコンパイラでのArduinoスケッチ開発 IDE for GRでのオフラインでのArduinoスケッチ開発 Rubicを使ったmrubyでの開発 今回は3番目のRubicを使った開発が主でしたが、mrubyを使って非常に手軽に開発できたのが印象的でした。 以下は、照度センサーから読み取ったアナログ値をRubicのログ欄に表示するスクリプトですが、ピンへのアクセスが直感的ですし、Rubyの言語機能を使えばデータの処理も楽そうに思いました(まだ複雑な処理を実装していませんが)。 #!mruby usb = Serial.new(0) pinMode(14,Read More →

先日にWeb APIを実装したとき、FalconというPython向けのWebフレームワークを使ったのでメモ。 Flanconを使った感想は、Web APIの処理の実装に集中できる、でしょうか。 PythonでWebアプリを実装するとき、Flask、BottleなどのWebフレームワークを使うのですが、これらのWebフレームワークはWeb APIには不要な画面表示のテンプレートを扱う機能が含まれています。 FlanconはWeb APIに特化していて、処理の実装に集中できるのが特徴です。 Flanconでの実装例 FalconはHTTP verbに応じたメソッド(on_get, on_post, …)を定義して、 引数のHTTP requestを処理して引数のHTTP responseに結果を返す処理を記述します。 例えば、JSONデータを返すGETメソッドを定義した例が以下になります。 GETメソッドの記述だけを考えればいいので、見通しがよく、書きやすいです。 # -*-Read More →

Xamarin Dev Days Tokyoに参加してきました。午前中はXamarinやXamarin.Formsの概要についてのセッション、午後は課題を各自で解くハンズオンでした。 Xamarinは以前にもハンズオンに参加して簡単なアプリを作ったことがあるのですが、それ以降アプリの作成時間が取れず放置してました。 今日のXamarin Dev Days Tokyoに参加して、Xamarin、特にXamarin.Formsでアプリを作る方法が掴めたように感じます。 Android版を出したいと思っていたアプリがいくつかあるので、そろそろXamarinのプロジェクトを起こして、開発を進めていこうかと思います。 Please install packageエラー 今日のハンズオンではまっていたことを。 正確な発生条件を把握してないのですが、初回のビルド時にAndroid版のプロジェクトをビルドするために、Classファイルが含まれたZIPファイルをダウンロードするようです。 そのサイズが200MBあって、ビルドを開始してからVS2015の出力に何も表示されない状況がしばらく続いて、ついキャンセルしてしまったのですが、それ以降、ビルドをすると"Please install package: ‘Xamarin.Android.Support.…’ availableRead More →

11/12(土)に開催されるXamarin Dev Days Tokyoでハンズオンがあるため、6月に購入した新ノートPCにXamarinの開発環境を整備してました。 前のVaio Duo 11には構築してあったのだけど、すっかり移行を忘れてました。 そろそろAndroidとWindows 10 UWPの両プラットフォームにXamarinを使ってアプリを出していく予定なので、ちょうどよい機会でした。 参考にしたドキュメント Xamarinの開発環境の設定手順は、田淵さんが以下で公開されているドキュメントが分かりやすいと思います。 XamarinHOL/XamarinHandsOn_Prepare_JXUG.pdf at master · ytabuchi/XamarinHOL · GitHub… Xamarinのセットアップ、かなり前にAndroidRead More →