try! Swift Tokyo 2018にいってきた
今年もtry! Swiftに参加してきた。昨年に続きとても楽しい時間を過ごすことができた。運営の方々に感謝。
今年はSwiftの言語仕様、OSS、コミュニティ、エコシステム、マルチプラットフォームといった話題についてより深い内容を扱っているトークが多かった。iOSアプリ開発の文脈でのトークは昨年に比べて少なかった。
個人的に面白かった発表
言語プロセッサに精通することは、作業効率化ツールを作ることができたり、たくさん実利があると感じた。最近LLVMやコンパイラについて調べたりしているので、そのあたりの自分の興味ともマッチして、とても面白かった。
今 In Review とのことだが、iOS版のCharlesが出るそう。会場もかなり沸いていた。
所感
今年は言語自体に関する話が多かった印象
- Swiftの言語仕様
- SIL, ASTなどSwift言語、LLVMフロントエンドに関する発表
- マルチプラットフォーム, Linux
- ASTを用いたツール開発による効率化
- iOSDCとの棲み分けができていて良い (向こうはアプリ設計、デザイン、運用の話が中心)
国際カンファレンス
- 海外からの参加者と気軽にコミュニケーションできるのが良い
- 海外からの参加者への配慮が行き届いていると感じた
- Slack
- 翻訳レシーバ
- 場内の英語表示
beta配信したアプリをインストールできない時のチェックリスト
仕事でよくCrashlytics betaを使ってアプリの配布を依頼されるのだが、インストールできないと問い合わせを受けることがある。 その時にチェックする項目を備忘のためリストにしておく。
- UDIDは登録済みか
- Provisioning Profileは更新したか
- ビルドには更新したProvisioning Profileを使ったか
- Crashlyticsにメールアドレスは登録済みか
- Crashlyticsからの再配信は試したか
- 端末にbeta配信したアプリと同じbundle idを使っているアプリが入っていないか
それでも駄目なら
- 端末からプロファイルを削除して登録からやり直す
- ipaファイルを直接インストールする
GNU開発ツールを読んだ
正月休みにGNU開発ツールを読んだ。とても良い本だった。
C言語で書かれたHello Worldのプログラムをビルドして実行する時に、裏で行われていることについて書かれている。最初にgccドライバが何をしているか大まかな流れを説明し、その後プリプロセス、コンパイル、アセンブル、リンクの各工程を解説するという構成で大変分かりやすかった。また文章も平易で理解しやすかった。細かいコマンドの全てに詳しい説明が書いてあり、実際にコマンドをUbuntu上で実行しながら読んだ。
以前、理論寄りのコンパイラの本を何冊か読んでみたことがあったが、自分には敷居が高かった。この本はコンパイラ初学者の入門に最適だと感じた。
絶版で、現在は著者のページで電子ファイルのみ購入することができる。 www.oversea-pub.com
React Nativeの環境構築をした
React Nativeの勉強に少し手をつけたので、環境構築の記録を残しておく。
マシンはmacOS 10.12.6
入れたもの
- Xcode
- Android Studio
- homebrew
- node
- watchman
- react-native-cli
VSCodeを使いたかったので以下も入れた。
- Visual Studio Code
- VSCode extension for react native
Xcode
iOSネイティブアプリの開発環境。App Storeからインストールする。
Android Studio
Androidネイティブアプリの開発環境。以下のリンクからインストールする。
homebrew
nodeのインストールに必要。
node
$ brew install node
watchman
ファイルの変更を検知して、シミュレータの内容を即座に更新するために使用する
$ brew install watchman
react-native-cli
React Nativeのコマンドラインツール
$ npm install -g react-native-cli
Visual Studio Code
以下のリンクからインストールする。
Visual Studio Code - Visual Studio
VSCode extension for react native
Visual Studio CodeにはReact Native用の拡張機能が存在する。Visual Studio Codeを起動して、画面左下のアイコンから拡張機能に移動し React Native
と検索するとヒットする。
参考
以下のコースを参考にしている。
https://www.udemy.com/the-complete-react-native-and-redux-course
2017年のふりかえり
アウトプット
登壇
同僚の誘いでGitLab Meetup Tokyo #2で登壇した。初めての勉強会での登壇だったが、良い経験になった。アウトプットへの心理的障壁が下がった。
OSSへのコントリビュート
3 pull requests, 2 merged
年末にふと思い立って出したプルリクエストが立て続けにマージされた。壊れたExampleプロジェクトのビルドを直したり、Warningを解消するような簡単な修正ではあったが、普段自分が使っているライブラリにコントリビュートすることができた。
blog
アウトプットを増やしたいと思い、今月になって意識的に投稿するようになった。Qiitaにも申し訳程度に投稿した。
インプット
読書
ここ数年継続的に行なっている。 booklogによると 47冊読了していた。ただそのうち技術書は僅か8冊だった。思っていた以上に少ない。今年は本を読み終えることよりも、読書を通して知りたい内容を引き出すことを意識していたにしても。あと8月に10冊読んだのは有休消化中で暇だったから。
Android
仕事
転職
8月で前職を退職。9月から現職に転職した。
前職
風通しがよく、気持ちよく仕事ができる人が多かった。色々な場面で親身に話を聞いてくれた上司と同僚にはとても感謝している。印象に残っている仕事として、昨年末から関わっていたプロジェクトを3月に無事リリースできた。
現職
大分慣れてきた。まだ大きなアウトプットを出せていないので、来年はもっと貢献したいと思っている。
来年
アウトプットを増やす。特にOSSへのコントリビュートは続けていきたい。インプットは領域を狭めて、深く学べるようにする。
2017年買って良かったもの
マキタ 充電式クリーナ 10.8V 本体付属バッテリー1個搭載モデル (カプセル式・トリガ式スイッチ) CL106FDSHW
- 出版社/メーカー: マキタ
- メディア: Tools & Hardware
- この商品を含むブログを見る
掃除機がコードレスになって恐ろしく便利になった。我が家は幼子がいることもあり、毎朝出勤前に5分程度さっとかけるようにしている。自宅に階段があるので、ルンバは今のところ検討していない。
- 作者: アゴタクリストフ
- 出版社/メーカー: 早川書房
- 発売日: 2014/09/30
- メディア: Kindle版
- この商品を含むブログ (7件) を見る
Rebuildで紹介されていて、続巻まで一気読みしてしまった。著者のアゴタ・クリストフはハンガリーの亡命者で、ナチス・ドイツ占領下のハンガリーの様子を思い描きながら読んだ。
- 作者: 細谷功
- 出版社/メーカー: dZERO(インプレス)
- 発売日: 2014/12/01
- メディア: Kindle版
- この商品を含むブログを見る
具体と抽象を行き来しながら物事を考えることを説明している本。物事を正しく抽象化して文章にすることに苦手意識を持っていて、そういう興味を持って読んでとても良かった。
ノートパソコンスタンド ラップトップスタンド 折り畳み式 PCスタンド コンパクト 軽量 頑丈 持ち運び便利 8段階調整可能 肩こり 腰痛対策 収納便利 パソコンホルダー ノートPCスタンド
- 出版社/メーカー: AUKEH
- メディア: エレクトロニクス
- この商品を含むブログを見る
ジェネリックRoost。これまで金属製のラップトップスタンドを使っていたけれど、これは場所を取らないし、持ち運びもできて便利。またスタンドを導入する以前は、ノートPCで作業すると肩が凝って仕方がなかったが、導入してからは症状が大きく改善されたので、使ったことのない方はぜひ試してもらいたい。
Reactive Programming in iOS with RxSwift | Udemy
今年になって初めてウェビナーを試してみた。ウェビナーとは、プログラミングなどのテーマについて、web上でセミナーを受けられるというもの。有名なものだとCousera, Udemy, Khan Academyなどがある。技術書を購入するのと大して変わらない値段で、動画を見ながらハンズオン形式で学んでいけるのが良かった。理解が不足している部分については一時停止したり繰り返し見たりできる。これ以外にもAndroidのコースとか、いくつか買った。
今年買った物の中で一番良かったのは結局これ。自分は毎朝子供を保育園に連れて行っているのだが、電動になって本当に楽になった。今では子の送迎に電動アシストのない自転車は考えられない。よく言われる心と体が繋がっているというのは本当で、毎朝の重労働が軽減されて心のゆとりが生まれた。 多少のお金で解決できることは、全部その方向でやっていきたい。
fastlane matchでCertificateを更新したProvisioning Profileを作る
Apple Developer ProgramからいつものYour iOS Distribution will expire in 30 daysというメールが来た。fastlane matchでProvisioning Profileを一から作ったことがなかったので、その時やったことのメモ。
やること
- Ceritificates を作り直す
- 新しいCertificates に紐づくProvisioning Profileを作る
Certificates を作り直す
- Apple Developer Programにログインする
- Account -> Certificates, IDs & Profilesを選択
- Production で絞り込み
- 新規Certificatesの作成
新しいCertificates に紐づくProvisioning Profileを作る
現在のプロジェクトではfastlane match
を使ってProvisioning Profileを管理しているので、fastlaneのコマンドからProvisioning Profileを更新する。
fastlane match
に関する説明は以下のリンクが詳しい。
このメモでは新しいCertificates に紐づくProvisioning Profileを作るためのコマンドだけを説明する。
1. 既存のProvisioning Profileを削除する
任意のアプリのリポジトリに移動し、以下のコマンドを実行する。なおnuke
はアプリ毎にProvisioning Profileを削除することはできず、アカウントに紐づく全ての AppStore, AdHocのProvisioning Profileが削除される。
$ bundle exec fastlane match nuke distribution
2. Provisioning Profileを作り直す
各リポジトリでmatch
を使用してProvisioning Profileを作り直す。この時Apple Developer Centerに有効なProvisioning Profileが存在しないため、自動的に最新のCertificateを含んだProvisioning Profileが作られる。
$ bundle exec fastlane match