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
iOSエンジニアがAndroidアプリ開発を勉強するためにやっていること
Android開発の勉強を始めてから2ヶ月ほどが経過した。 これまでにやったことを備忘のために残しておく。
実機を購入
なにはともあれ実機があった方がよい。シミュレータでも開発はできるが、起動に時間がかかり効率が良くない。また普段使いの端末がないとAndroidアプリのあるべき姿、手触り感も分からない。最初にまとまった金額を払うことで、途中で投げ出せないようにする効果も多少はあったように思う。同僚のAndroidエンジニアの意見を参考にしつつHuaweiのP10 Liteを購入した。
自分は格安simのmineoを通話なし3GBで契約していて、ランニングコストは月々1,000円弱。
Huawei 5.2型 P10 lite SIMフリースマートフォン ミッドナイトブラック 【日本正規代理店品】 P10 LITE/WAS-LX2J/MI
- 出版社/メーカー: HUAWEI(ファーウェイ)
- 発売日: 2017/06/09
- メディア: エレクトロニクス
- この商品を含むブログ (2件) を見る
Android Developers
分からないことがあれば公式ドキュメントを読み進めて調べることになる。勉強を初めて間もない頃にハマるような問題はここに正解が書いてある。
Udemyのコースを受講
UdemyのThe Complete Android Kotlin Developer Courseというコースを受講した。Udemyは頻繁にセールを実施しているのでそのタイミングで購入するのが良い。最初に動画で勉強をするのは、費用面でも時間面でもコスパが良いと感じている。順を追ってコードを書きながら説明してくれるので、一人で本を読むより学習しやすい。コードを書きながら受講すれば、本を読んでいるだけではスルーしていた、自分が理解していない部分に気づけたりもする。
ただしこのコースは、講師の英語が自分にとっては聞きづらく、字幕も自動生成なのでけっこう厳しかった。そこは無料で見られる講義をちゃんと確認して、自分に合ったコースを購入するのが良さそう。
The Complete Android Kotlin Developer Course | Udemy
書籍
以下の書籍を読みながら写経した。Android SDKについて学びたかったので、Kotlin/Javaの言語の差異は現時点では気にせずに書籍を選んだ。というかKotlinで書かれた入門書は現時点では存在しないっぽい。来年以降はKotlinを前提とした書籍が出版されるはず。
TECHNICAL MASTER はじめてのAndroidアプリ開発 第2版 Android Studio 2対応
- 作者: 山田祥寛
- 出版社/メーカー: 秀和システム
- 発売日: 2016/12/16
- メディア: 単行本
- この商品を含むブログを見る
またAndroidエンジニアの現場感を知りたくて、以下のような書籍も読んだ。一通りのキーワードをさらっておくことで、断片的だった知識が整理できたように思う。
黒帯エンジニアが教えるプロの技術 Android開発の教科書
- 作者: 筒井俊祐,里山南人,松田承一,笹城戸裕記,毛受崇洋
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/06/18
- メディア: Kindle版
- この商品を含むブログを見る
Androidアプリ開発の極意 ~プロ品質を実現するための現場の知恵とテクニック
- 作者: 木田学,おかじゅん,渡辺考裕,荒川祐一郎,小林正興,テックファーム
- 出版社/メーカー: 技術評論社
- 発売日: 2017/03/16
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
コードリーディング、写経
最近はGoogleが公開しているサンプルリポジトリのコードリーディングと写経をしている。Udemyや入門書のコードから、いかにプロダクションレベルのコードを書けるレベルになれるかという課題感を持っているので、非常に参考になる。
これから
まだまだ読みたい本があるし、普通にプロダクションのコードも書いていきたい。来年はDroidKaigiに参加するので、今から面白い話が聞けるんではないかと、非常に楽しみ。
iOSDC 2017に参加した
9/14〜16の3日間、iOSDC 2017に参加してきました。 来年は何か発表できると良いかな。
よかったセッション
参加したセッションは面白いものばかりだったのですが、個人的に特に印象に残っているのは以下のセッションです。 アプリアーキテクチャや具体的な実装についての説明があったセッションと、今課題感を感じているアナリティクスやデータ分析に関するセッション、アニメーションに関するセッションが特に興味深かったです。
Build high performance and maintainable UI library
Building High Performance and Testable UI component // Speaker Deck
RxSwiftのObservableとは何か
RxSwift の Observable とは何か - Qiita
ディープリンクの設計と実装
ディープリンクの 設計と実装 - iOSDC2017 // Speaker Deck
多次元宇宙と画面遷移
触り心地の良いInteractive Transitionをマスターしよう
触り心地の良い Interactive Transitionをマスターしよう - iOSDC 2017 // Speaker Deck
コード生成による静的なDependency Injection
Static Dependency Injection by Code Generation // Speaker Deck
FirebaseとBigQueryによるアプリのKPI分析(CMの効果検証編)
FirebaseとBigQueryによるアプリのKPI分析(CMの効果検証編) // Speaker Deck
サポート効率を上げるログ収集環境の構築
サポート効率を上げるためのロギング環境構築 // Speaker Deck
最後に
参加者のことを細やかに配慮しているのがわかる運営で、3日間大変快適に過ごせました。 スタッフの皆さんありがとうございました!
builderscon tokyo 2017に参加した
8月4, 5日と builderscon に参加してきました。
聞いたセッション
聞いたセッションの中で特に面白かったのは以下の2つでした。
複雑なJavaScriptアプリケーションに立ち向かうためのアーキテクチャ
僕は仕事でここ3年くらいiOSアプリを書いています。このセッションはJavaScriptと銘打ってはいるのですが、iOSの設計にもばっちり適用できるアプリアーキテクチャがテーマでした。実例を交えつつ丁寧に説明してくださって非常に参考になりました。
関連して、以下の発表も大変参考になりました。真似しよう。
#yapc8oji 得票数4位トーク「あの日見たM V WhateverのModelを僕たちはまだ知らない」実況中継 - Re.Ra.Ku tech blog
DeepLearningによるアイドル顔認識を支える技術
データセットを作成するyak shavingの中でRails, React, Dockerなど未経験の技術をキャッチアップされていて、目的を達成するために新しい技術を少しずつ学んでいくのはとても良いと思いました。
所感
buildersconは「知らなかった、を聞く」というテーマで、今回これはだいぶ達成できました。 個人的には自分の活動がインプットに偏っているのを常々感じているので、また勉強会で発表したり、このブログもぼちぼち書いていきたいなと大変刺激を受けました。
最後に
builderscon はセッションが面白かったのはもちろん、無限コーヒーや朝食が大変ありがたく、2日間大変快適に過ごせました。運営の皆さん、ありがとうございました!