Subscribed unsubscribe Subscribe Subscribe

Unyablog.

のにれんのブログ

iOS / Android アプリ作成入門スライドを公開しました

Android iOS Swift java KMC

自分の所属している京大マイコンクラブ (KMC) では毎年3月に春合宿を行っており、60分ほど講座を行います。

今年は iOSアプリ作成入門 を行いました。

speakerdeck.com

また、書いたけど没になった Android 編も公開しました。

speakerdeck.com

iOS

これは僕が最近 iOS / Swift に入門したのをまとめたものです。

元々 Android だったのを iOS に変更したので、ほとんど宿についてからアプリもスライドも作ることになりました。*1

TableView のあたりは AndroidRecyclerView と変わらないので一部流用できました。

SpeakerDeck だとリンクが効かないみたいですね... 本来は SlideShare に上げたかったのですが日本語がうまくレンダリングできない不具合が出ているらしく SpeakerDeck をつかいました。

iOSGUIで操作する部分が多いので Gyazo GIF で mp4 を撮影してスライドに含めるようにしました。分かりやすかったようでよかったです。

補足

  • MADE IN HANASE

    花背(京都市左京区北部)で作成しました。3G回線が窓際に置くと入るみたいな環境なのでちょっとつらい。

  • StackOverflow API

    StackOverflow APIIPアドレスごとに制限がかかるらしいです。一部は認証が必要ですが検索や解答の取得程度なら認証は不要です。

    URL 末尾の &filter=... でどのような要素を取得したいかを指定します。指定しなかったら body が降ってきません。

  • TableViewCellView

    View のレイアウト解説は面倒だし本質的でないなので今回は省略しました。実は今回アプリ作る上で半分ぐらいはこのレイアウトに時間かけてたりします。ただ Auto Layout は Android を元々やっていたのですぐに慣れることができました。Wrap_content 的なのが指定面倒そうだったので Cell の高さは一定値にしています。

Android

去年は Androidアプリを作成・公開する話 で概念の話をしたので今度は実装、というテーマでスライドを作成しました。元々は Android / iOS で同じアプリを作ってみよう、という予定でした。

これが没になったのは

  • ソースコードが多くて発表向きではない
    • ひたすら実装コードを並べて意味を解説するだけになってしまった
  • 去年とどうしても被る部分が出て来る
  • iOS のほうが View の組み立てなどが面白く紹介できる
  • 十分な発表時間がない

といった理由です。完成はさせてあるので RecyclerView わからない人とかは見てもらえると嬉しいです。

補足

  • java8

    Android N で使えるとかなんとか。合宿中に発表されてびっくりした。こっちの対応大変そうだし Kotlin のサポートはしばらくはされなさそうですね...*2

  • OkHttp

    AsyncTask をここで解説するのは無駄だなあと思ったので DefaultHttpClient を使ったものはやめました。 Volley か OkHttp か Retrofit かで迷ったのですが、

    1. Volley はアップデートがほとんどされていない、内部で非推奨クラスを用いている
    2. OkHttp はリクエストを担うだけでシンプルだし、Worker Thread で帰ってくるので UI Thread 関係の解説がしやすい。また、 Android 内部でも使われている
    3. Retrofit は使って欲しいけど Retrofit 自体の解説をしないといけない

    ということで OkHttp をつかいました。実際リクエストがシンプルに表せてよかったです。

  • RecyclerView

    今から覚えるなら ListView ではなく RecyclerView にしてほしいなと思ったのでこちらを採用しました。ただそのせいでコード解説が長くなってしまったという反省も。

宣伝

KMC こと京大マイコンクラブでは部員を募集しています。詳細は下記Webページを御覧ください!

*1:三日目だったのでなんとかなった

*2:java8 になるのは大歓迎というか最高