iOSカンファレンス! iOSDCに参加したよ!
2016年8月20日、iOSカンファレンスのiOSDC (iOS Developers Conference Japan)が開催されました。
とても熱気あふれるカンファレンスでした。
参加してよかった!
登壇内容もどれも実践的で、それぞれの登壇者の経験をもとに語られて、参考になるものばかりでした。
この熱気が冷めないうちに、iOSDCの登壇内容を記事にしたいと思います。
私が参加した登壇を書いていきたいと思います。
海外のiOSカンファレンスに登壇する - 完全版 by shu223
shu223さんのiOSカンファレンスの登壇に挑戦した内容です。
堤さんの発表始まった!#iosdc
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
UIKonf、iOSCon、AltConfに参加したそう#iosdc
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
カンファレンス参加の目的
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
1.海外から仕事が来るようになりたい
->ブログ、書籍は日本語のみ。海外の入り口を広げたかった
2.英語力を鍛えたい
->でも英語の勉強はしたくない。場数を増やす!
3.スピーカーの方々と友達になりたい#iosdc #b
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
パソコンを見るだけになりがちなのを防ぐ仕組みは必要だね。堤さんはカンペに(観客)と書いて、そこにきたら観客をみるようにしたそう#iosdc #b
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
目標を立てて、実行して結果を振り返るというサイクルを自然に回していて、自分ももっと考えないといけないなと思った登壇でした。
IPv6 Readyって何だ? NAT64/DNS64の本当の使い方とは?
藤崎 智宏さん/岡田 雅之さん (@smadako)の登壇。
https://iosdc.jp/2016/c/node/168
IPv6はすでに普及し始めていて、その対応をしていかないといけない状況になっているそうです。
そんな中でiOS開発でもAppleがIPv6対応していないアプリをリジェクトする方針を取ったり、でもまだまだ対応できていないよね、というお話をしていました。
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
IPアドレスを直接プログラムに書くな!
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
設定ファイルにIPアドレス書くな!
プリフライト(=インターネット接続チェック)を使うな#iosdc #b
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
スタックオーバーフローの解答例もv4しか対応できてないソースを回答する人もいるので、ちゃんと考えて取り入れないとだめなのかー#iosdc #b
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
IPv6普及・高度化推進協議会はこれかな?https://t.co/huirXtlWpc#iosdc #b
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
私も質問したところ、Appleが提供している通信ライブラリー(FoundationのNSURLSessionなど)は開発者は何もしなくても、ライブラリーがよしなにしてくれる。
自分で独自にいろいろしたい時(IPアドレス直打ちでなにかやるとか)にはIPv6対応を考えないといけないそう。
エンジニア向けSketch3でアイコン作成はじめの一歩
https://iosdc.jp/2016/c/node/124
デザイナーの@meycoのSketch3でのアイコン制作ハンズオンでした。
WunderlistのアイコンをハンズオンでSketch3でトレースするという内容でした。
デザイナーはデザインのここを見るのか! というのが可視化されてとても興味深い登壇でした。
(薄いグラデーションとか、シャドウとか光沢とか。気にしてないと見えない部分がたくさんありました。)
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
リボンの影について。直角でいいと思っていたのですごく新鮮でした。
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
情報取得!ランキング上位のアプリのアイコンはどんなもの?世界観あうやつ。似たものは?
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
ラフを描く。
sketch3で描く#iosdc #b
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
手でラフを描くときのアドバイスです。
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
世界のリソースを使おうhttps://t.co/NQtE5X979q#iosdc #b
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
sketchの使い方の本があるそう。あとで見てみようhttps://t.co/ihk8AmSJmJ#iosdc #b
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
@meycoさんのアイコンを作る
・世界のリソースを使う
・ラフを手で描く
・Sketchでつくる
といっていて、プログラマーと近いなーと思って親近感をわきました。
プログラマーも何か機能なりなんなりを作るときは、他の人の実装(ライブラリーだったり、ブログの記事だったり)を読んでから手を動かすけど、デザイナーさんもまず他の人のデザインをよく読み込むところから始まるんだなーと思いました。
アイコン収集はピンタレストやdribbbleを使っているそうです。
iOS10時代のCollectionView最新つかいこなし
@TachibanaKaoruさんの登壇です。
登壇内容の記事がありましたので紹介します。
http://niwatako.hatenablog.jp/entry/2016/08/20/120221
uitableviewを軽くする!
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
角丸は画像でつくる。
おれもプログラムでできますよっていってしまうから気を付けないとなー#iosdc #a pic.twitter.com/41Iyjcaky2
iOS10からUITabelViewとCollectionViewのセル生成のライフサイクルが変わるそう。
あとでキャッチアップしないといけないと思いました。
ドッグフーディングしやすい環境を整える
@mao_nishiさんの発表です。
ドッグフィーディングとは、自社開発のアプリを自社スタッフも利用して、アプリを改善していく手法なのです。
しかし自社スタッフといえどもただ開発チームから「開発したので使って改善点教えて下さい」としてもフィードバックを得にくい現状があります。
この登壇では、@mao_nishiさんがいかにドッグフィーディングによるフィードバックをもらいやすい環境を作っていったのかが発表されて、とても参考になりました。
こちらが資料になります。
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
「一括で再出品できるようになりました」
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
〇〇できるようになりました。というとみんな作ってくれる可能性高まる#iosdc #b
何がポイントなのかを一言で言うのが大事。
アプリDLはApple Developer Enterprise Programに参加して配布!マスト!#iosdc #b
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
お金はかける!
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
フィードバックするにもたくさんの障害があるのでそれを取り除く必要があります。
アプリ内でフィードバックボタンを作る。
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
キャプチャ、カテゴリ(挙動がおかしい、使いづらい、カクカクするなど)フリーテキストを入力するビューを表示させて送信させる#iosdc #b
フィードバック用のツールをアプリに埋め込んで簡単にフィードバックできるように下らしいです。
オープンソースで公開中とのことです。
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
FeedbackKitで、フィードバックができるhttps://t.co/d2CmCNiaSW
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
MITライセンスで使いやすそう!#iosdc #b
ボタン一つでフィードバックできるツールFeedbackKit、使ってみようと思います。
メモリー管理の嬉しいバイキング料理
@rayfixさんのSwiftによるメモリー管理の登壇です。
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
DispatchQueue.main.async{ self.served += 1}でも行けるそう。なんでだろう?#iosdc #a
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
DispatchQueue.main.async{ self.served += 1}でも行けるそう。なんでだろう?#iosdc #a
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
@hatakenokakashi selfをキャプチャをしているわけではないとのこと。あとで調べよう。#iosdc #a
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
質疑応答をしてみました。
ディスパッチのクロージャーで[weak self]をいれなくても循環参照はしていないのかと聞いたところディスパッチは大丈夫とのことでした。
Twitterでなぜなのかを答えてくれた方がいらっしゃったので紹介します。
「クロージャの参照を握っているのが self ではないので、クロージャがselfを握っても、循環参照にならない」ってことですね。 >質疑応答#iosdc #a
— upft_rkoshida (@upft_rkoshida) August 20, 2016
@upft_rkoshida 質問した人です!なるほどです!クロージャーがself握っていない場合もあったんですね。初めて知りました!#iosdc #a
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
@hatakenokakashi dispatch_async に食わせたクロージャは、システム(具体的にどのオブジェクトなのかは分かりませんが…)が所持して、selfとは無関係だから、ですね。
— upft_rkoshida (@upft_rkoshida) August 20, 2016
もちろん、「selfのプロパティにクロージャ代入」とかだと、selfが持ちます!
33歳モバイルエンジニア道
@nakajijapanさんの登壇です。
中堅エンジニアとしてどんなキャリを渡って行っているのかを発表していました。
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
30超えるとずっとすわっていられなくなるのか。自分はまだまだ大丈夫だと思っているけどある日突然そんな状態になるのかな#iosdc #b
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
Swiftのこれまでの動向のまとめと今後のさらなる発展の期待
@_monoさんのSwiftの歴史とSwift3のリリース内容の登壇でした。
発表資料はこちらです
http://www.slideshare.net/mono0926/swift-iosdc-2016-65179236
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
#iosdc #b
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
swiftのリリース予定 pic.twitter.com/IylfcD3gUr
Swift で JavaScript 始めませんか?
続いて、@es_kumagaiさんの登壇。
JavaScriptCoreを使うとSwiftとJavaScriptの相互実行ができるそうなのです。
アプリを再ビルドしなくてもJavaScriptのコードを差し替えるだけでアプリの挙動を変えることができるので、とても柔軟性の高いアプリを作れるとのことでした。
すごい!
JavaScriptCoreを使えば、再ビルドせずに実装を差し替えられる。JavaScriptの良さが光っている。
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
でもアプリ審査通るかは不明。#iosdc #a
審査は通るみたいでした。
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
https://t.co/pdCFWETaIO
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
ファイル渡してのインスタンス化はできなさそう。#iosdc #a
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
Jsファイルをアプリバンドルに取り込んで、テキストに直せば行けるそうです。
資料から抜粋してみます。
以下のコードを書きます。
let path = Bundle.main.url( forResource: "JavaScriptAPI", withExtension: "js")!
let source = try! String(contentsOf: path) // 読み込んだ JavaScript をコンテキストで実行
let context = JSContext()! context.evaluateScript(source)
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
審査通ったアプリが他にあるそうなのでJavaScriptCore Framework は使っても大丈夫そう#iosdc #a
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
Xcode で快適なデバッグライフを追い求める
@dealforestさんのXcodeのデバックTipsの登壇。
デバックはいつも四苦八苦してやっているので、とてもためになります。
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
Environment Variablesを使うといい。
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
画面の奥の確認(タップをたくさんしないと出てこない画面を確認したいとき)に使う
#iosdc #a
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
LLDBでファイルをSlackに渡す方法https://t.co/OW2dY7cIAE#iosdc #a
— SatoTakeshi_カエルタベル (@hatakenokakashi) August 20, 2016
最後に
参加して良かったです。
来年もいきたい!