sidebarmuo-notesソフトとハードの隙間で生きたいエンジニアの関心記PagesホームGitHubTwitter年4回、計50ページの雑誌記事を書いたメモ2014年10月23日木曜日この一年、日経ソフトウエア誌に寄稿する機会を多く頂きました。雑誌に年間4回寄稿するというのは初めての経験であり、感慨深いものだったので振り返りがてらメモしてみます。(2013-12-24)Amazon.co.jpで詳細を見る最初は2014年2月号(2013/12/24発売)にてAndroidとiOSの特徴を活かしたアプリ作りという話を書きました。AndroidだからできることiOSだからできることAndroidとiOSでは、アプリで使える機能にも差があります。両者の得意分野、実装できる機能などを、ポイントを絞って解説します。7(7.0)という状況で書きました。比較的ライトにまとめ、分量としては10ページでした(いわゆる特集4)。これら以外にも挙げるべき箇所はあると思いますが、特徴的なところを挙げたつもりです。Services範疇のものを挙げていました。ユーザの最新OSへのアップデート速度が速い点からくる最新APIの使いやすさを挙げました。あと枠外として、BYODに活用できるセキュリティ機構についてそれぞれのOSのアプローチ差を概説しました。8.1へと進化を続けてきました。Extension、ソフトウェアキーボード作成のオープン化は象徴的です。NFCについてはまずは様子見という感じのiOSですが、早晩デベロッパ向けのSDKも解放するのでしょう(2-3年経ってもリリースされなかったら笑いますが)。libraryでのカバーという面がより鮮明になっている昨今です。今だと、Phone端末でも平然と使えるようになったマルチユーザあたりをAndroidの序盤に入れると思います。4.1ベースとなって今度こそ立ち上がってくる、のかはまだ分かりませんがきっと少なからず変化はあるでしょう。2014のレポート記事です。2014」2ページの短いレポートなので紹介できたポイントは多くありませんが、日本と似たところ、違うところと感じたままに雰囲気を書きました。「買うたったウッヒャー」勢と「こんなん作ったった」勢が入り乱れて新しいものが生まれていくエネルギーは面白いなぁと改めて思った次第です。35,526Amazon.co.jpで詳細を見る続いて、最大規模となった2014年9月号(2014/07/24発売)で、JavaとC#とObjCへと一気に入門する的な28ページの記事です(特集1)。Java、C#、Objective-C人気3言語を丸ごとマスターJavaとC#、Objective-Cの3つは、ともにオブジェクト指向を取り入れたプログラミング言語であり、文法などの類似点が多くあります。そこで本特集では、この人気3言語を一気にマスターしてみましょう。それぞれの言語の類似点・相違点を正しく理解すれば、きっと今までよりも深く言語を知ることができるはずです。resources)C#の拡張メソッドあたりをマイルドに紹介しつつ解説する内容でした。8は仕事上もAndroid上もまだ未来のものなので!)への言及をおこなう都合上、実際に挙動を試したりVMやランタイムの仕様書や公開資料をひっくり返したりというフェーズが割と長かった記憶があります。Programsを読み返すなどして補って執筆に臨みました。生粋のJavaエンジニアも、Objective-Cの[]を気持ち悪いと思うことがなくなるでしょう。書いたのですが、結果としてこの恩恵を一番受けたのは自分自身だった気もします。分量の問題は割と深刻でした。私は、雑誌への寄稿において仕事時間は執筆系タスクにあてない、というのを個人的ポリシーとしている(上司からは"仕事時間にやってもええよー"とは言われている)のですが、この時はさすがに「2日ほど有給を取って執筆にあてます」とギブアップすることになりました。後で周りに話を聞いたら「それ3人で分担する量やで」と突っ込まれて白目剥きました。それゆえ一貫した見方での記事には仕上がったと思うので、良いのですが(締め切り的には全然良くなかったのですが)。(2014-10-24)Amazon.co.jpで詳細を見る最後は2014年12月号*1、明日(2014/10/24)発売です。手に取ってみてください。8)向けのアプリケーション同時開発です。『Android&iOSアプリ同時開発』スマホアプリを多くの人に使ってもらうためには、AndroidとiOSの両OSで同じように動くアプリを作るのが理想的です。現在は、Android向けアプリとiOS向けアプリの共通部分を1つのコードで開発できるツールが数多く存在します。両OS向けのアプリを同時開発する手法と、そのポイントを紹介します。特集1は3つのパートに分かれていて、私はパート2(Xamarinを使った複数プラットフォーム同時開発)の10ページを執筆しました。この中では、開発前に考えるべきこととして、Xamarinの適用に向いているエリア、UI共通化の現実味や「無理に共通化を狙うべきではない」箇所についての検討ののち、Xamarin.Formsを使って実際にMVVMでクロスプラットフォームのアプリを開発していくというフローを分かりやすく紹介するところにフォーカスしました。Xamarinを取り巻く基盤の話とMVVMのざっくりした解説をおこなった後は実際にハンズオンに近い形でアプリ構築と両プラットフォームでの動作確認までをおこなってみるスタイルの記事です。記事中で、Xamarin.Formsでの軽く流れを把握するための小さなプロジェクトをさらりと流した後のメインお題はTwitterクライアントの開発です。様々なプラットフォーム用に便利なライブラリが提供されている現代においては、例えばTwitterに関してはAndroid用にはTwitter4jなどを使うと機能の作り込みは比較的スピーディーにおこなえます。作り込んだものを他プラットフォームでまた全然違う基盤の上で作り込み直すのは実際辛い。Xamarinだと、その作りこんだロジックを他のプラットフォームにも持っていけるのが嬉しい、というのが伝わると良いナァと考えつつ書きました。2014で発表されたXamarinの新機能の紹介と試用した結果を記載しました。2014年12月号が最初だと思います(違ったら教えて下さい)。読むのがおすすめです。完成版でも良い本になる雰囲気出てます。日経ソフトウエアサイト上のバックナンバーURLはまだありません。Faire)という具合です。全体に、OSの狭間と言語の狭間でもがいているのをなんとなく察していただけるかと思います。複数のOSや言語を扱う機会が日常的にあるのは、現職での仕事内容のおかげです。時間と紙面が限られる中で一定以上のクオリティの記事を紙媒体へと持っていけたのは、スケジュール的にギリギリになった原稿にお付き合い頂いた編集の方と、校了前にこれまたギリギリのタイミングにも関わらず査読を頂いた方々のおかげです。得難い経験をできた嬉しさと共に、手に取って読んでくださった方々、特に辛口なフィードバックをくださった方々に深く感謝する次第です。年間を通じて編集進行で迷惑をかけ倒してしまったので、この先については、やるにしても6-7割ネタを書き上げた状態で持ち込むようなスタイルにしないと詰み体質は脱却し難いという知見が得られました。MacBookを4/10に注文、4/14出荷、届いたのは4/17だったので正確にはもうすぐ2ヶ月ですが。Dockerで簡単にGPU対応のTensorFlow入りコンテナを作る方法こんにちは。作品群を読んでいたら連休が終わりそうです。重くなるので読み込まないようにすればOK。資料を補足するシリーズです。途中でやったことや、参考情報を書いていきます。