自分の所属している京大マイコンクラブ (KMC) では毎年3月に春合宿を行っており、60分ほど講座を行います。
今年は iOSアプリ作成入門 を行いました。
また、書いたけど没になった Android 編も公開しました。
iOS 編
これは僕が最近 iOS / Swift に入門したのをまとめたものです。
元々 Android だったのを iOS に変更したので、ほとんど宿についてからアプリもスライドも作ることになりました。*1
TableView
のあたりは Android の RecyclerView
と変わらないので一部流用できました。
SpeakerDeck だとリンクが効かないみたいですね... 本来は SlideShare に上げたかったのですが日本語がうまくレンダリングできない不具合が出ているらしく SpeakerDeck をつかいました。
iOS、GUIで操作する部分が多いので Gyazo GIF で mp4 を撮影してスライドに含めるようにしました。分かりやすかったようでよかったです。
補足
MADE IN HANASE
StackOverflow API
StackOverflow API は IPアドレスごとに制限がかかるらしいです。一部は認証が必要ですが検索や解答の取得程度なら認証は不要です。
URL 末尾の
&filter=...
でどのような要素を取得したいかを指定します。指定しなかったら body が降ってきません。TableViewCell
のView
View
のレイアウト解説は面倒だし本質的でないなので今回は省略しました。実は今回アプリ作る上で半分ぐらいはこのレイアウトに時間かけてたりします。ただ Auto Layout は Android を元々やっていたのですぐに慣れることができました。Wrap_content
的なのが指定面倒そうだったのでCell
の高さは一定値にしています。
Android 編
去年は Androidアプリを作成・公開する話 で概念の話をしたので今度は実装、というテーマでスライドを作成しました。元々は Android / iOS で同じアプリを作ってみよう、という予定でした。
これが没になったのは
- ソースコードが多くて発表向きではない
- ひたすら実装コードを並べて意味を解説するだけになってしまった
- 去年とどうしても被る部分が出て来る
- iOS のほうが
View
の組み立てなどが面白く紹介できる - 十分な発表時間がない
といった理由です。完成はさせてあるので RecyclerView
わからない人とかは見てもらえると嬉しいです。
補足
OkHttp
AsyncTask をここで解説するのは無駄だなあと思ったので
DefaultHttpClient
を使ったものはやめました。 Volley か OkHttp か Retrofit かで迷ったのですが、- Volley はアップデートがほとんどされていない、内部で非推奨クラスを用いている
- OkHttp はリクエストを担うだけでシンプルだし、
Worker Thread
で帰ってくるのでUI Thread
関係の解説がしやすい。また、 Android 内部でも使われている - Retrofit は使って欲しいけど Retrofit 自体の解説をしないといけない
ということで OkHttp をつかいました。実際リクエストがシンプルに表せてよかったです。
RecyclerView
今から覚えるなら
ListView
ではなくRecyclerView
にしてほしいなと思ったのでこちらを採用しました。ただそのせいでコード解説が長くなってしまったという反省も。
宣伝
KMC こと京大マイコンクラブでは部員を募集しています。詳細は下記Webページを御覧ください!