2017年買って良かったもの

掃除機がコードレスになって恐ろしく便利になった。我が家は幼子がいることもあり、毎朝出勤前に5分程度さっとかけるようにしている。自宅に階段があるので、ルンバは今のところ検討していない。

悪童日記

悪童日記

Rebuildで紹介されていて、続巻まで一気読みしてしまった。著者のアゴタ・クリストフハンガリーの亡命者で、ナチス・ドイツ占領下のハンガリーの様子を思い描きながら読んだ。

具体と抽象

具体と抽象

具体と抽象を行き来しながら物事を考えることを説明している本。物事を正しく抽象化して文章にすることに苦手意識を持っていて、そういう興味を持って読んでとても良かった。

ジェネリックRoost。これまで金属製のラップトップスタンドを使っていたけれど、これは場所を取らないし、持ち運びもできて便利。またスタンドを導入する以前は、ノートPCで作業すると肩が凝って仕方がなかったが、導入してからは症状が大きく改善されたので、使ったことのない方はぜひ試してもらいたい。

Reactive Programming in iOS with RxSwift | Udemy

今年になって初めてウェビナーを試してみた。ウェビナーとは、プログラミングなどのテーマについて、web上でセミナーを受けられるというもの。有名なものだとCousera, Udemy, Khan Academyなどがある。技術書を購入するのと大して変わらない値段で、動画を見ながらハンズオン形式で学んでいけるのが良かった。理解が不足している部分については一時停止したり繰り返し見たりできる。これ以外にもAndroidのコースとか、いくつか買った。

bscycle.co.jp

今年買った物の中で一番良かったのは結局これ。自分は毎朝子供を保育園に連れて行っているのだが、電動になって本当に楽になった。今では子の送迎に電動アシストのない自転車は考えられない。よく言われる心と体が繋がっているというのは本当で、毎朝の重労働が軽減されて心のゆとりが生まれた。 多少のお金で解決できることは、全部その方向でやっていきたい。

fastlane matchでCertificateを更新したProvisioning Profileを作る

Apple Developer ProgramからいつものYour iOS Distribution will expire in 30 daysというメールが来た。fastlane matchでProvisioning Profileを一から作ったことがなかったので、その時やったことのメモ。

やること

  1. Ceritificates を作り直す
  2. 新しいCertificates に紐づくProvisioning Profileを作る

Certificates を作り直す

  1. Apple Developer Programにログインする
    • Account -> Certificates, IDs & Profilesを選択
  2. Production で絞り込み
  3. 新規Certificatesの作成

f:id:enmtknt:20171227171649p:plain

新しい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円弱。

Android Developers

分からないことがあれば公式ドキュメントを読み進めて調べることになる。勉強を初めて間もない頃にハマるような問題はここに正解が書いてある。

developer.android.com

Udemyのコースを受講

UdemyのThe Complete Android Kotlin Developer Courseというコースを受講した。Udemyは頻繁にセールを実施しているのでそのタイミングで購入するのが良い。最初に動画で勉強をするのは、費用面でも時間面でもコスパが良いと感じている。順を追ってコードを書きながら説明してくれるので、一人で本を読むより学習しやすい。コードを書きながら受講すれば、本を読んでいるだけではスルーしていた、自分が理解していない部分に気づけたりもする。

ただしこのコースは、講師の英語が自分にとっては聞きづらく、字幕も自動生成なのでけっこう厳しかった。そこは無料で見られる講義をちゃんと確認して、自分に合ったコースを購入するのが良さそう。

The Complete Android Kotlin Developer Course | Udemy

書籍

以下の書籍を読みながら写経した。Android SDKについて学びたかったので、Kotlin/Javaの言語の差異は現時点では気にせずに書籍を選んだ。というかKotlinで書かれた入門書は現時点では存在しないっぽい。来年以降はKotlinを前提とした書籍が出版されるはず。

またAndroidエンジニアの現場感を知りたくて、以下のような書籍も読んだ。一通りのキーワードをさらっておくことで、断片的だった知識が整理できたように思う。

黒帯エンジニアが教えるプロの技術 Android開発の教科書

黒帯エンジニアが教えるプロの技術 Android開発の教科書

Androidアプリ開発の極意 ~プロ品質を実現するための現場の知恵とテクニック

Androidアプリ開発の極意 ~プロ品質を実現するための現場の知恵とテクニック

コードリーディング、写経

最近はGoogleが公開しているサンプルリポジトリのコードリーディングと写経をしている。Udemyや入門書のコードから、いかにプロダクションレベルのコードを書けるレベルになれるかという課題感を持っているので、非常に参考になる。

github.com

github.com

これから

まだまだ読みたい本があるし、普通にプロダクションのコードも書いていきたい。来年はDroidKaigiに参加するので、今から面白い話が聞けるんではないかと、非常に楽しみ。

tatsu-zine.com

DroidKaigi 2018

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

多次元宇宙と画面遷移

多次元宇宙と画面遷移 // 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つでした。

builderscon.io

builderscon.io

複雑なJavaScriptアプリケーションに立ち向かうためのアーキテクチャ

speakerdeck.com

僕は仕事でここ3年くらいiOSアプリを書いています。このセッションはJavaScriptと銘打ってはいるのですが、iOSの設計にもばっちり適用できるアプリアーキテクチャがテーマでした。実例を交えつつ丁寧に説明してくださって非常に参考になりました。

関連して、以下の発表も大変参考になりました。真似しよう。

#yapc8oji 得票数4位トーク「あの日見たM V WhateverのModelを僕たちはまだ知らない」実況中継 - Re.Ra.Ku tech blog

DeepLearningによるアイドル顔認識を支える技術

speakerdeck.com

データセットを作成するyak shavingの中でRails, React, Dockerなど未経験の技術をキャッチアップされていて、目的を達成するために新しい技術を少しずつ学んでいくのはとても良いと思いました。

所感

buildersconは「知らなかった、を聞く」というテーマで、今回これはだいぶ達成できました。 個人的には自分の活動がインプットに偏っているのを常々感じているので、また勉強会で発表したり、このブログもぼちぼち書いていきたいなと大変刺激を受けました。

最後に

builderscon はセッションが面白かったのはもちろん、無限コーヒーや朝食が大変ありがたく、2日間大変快適に過ごせました。運営の皆さん、ありがとうございました!

RxSwiftのチュートリアルをやった

プレーンなSwiftで書かれたアプリをRxSwiftで書き換えるチュートリアルがあったのでやってみた。

www.raywenderlich.com

以下の点がとても良いと思った。

  • ソースコードをダウンロードして、すぐに手元で動かすことができる。(Xcode 8.2.1)
  • 分量が丁度良い。文章を読みながら進めて3h程度で終えることができた。
  • RxSwiftで書くとどういう風にコードが書き換わるのか、RxSwift, RxCocoaで何ができるのか、何が嬉しいのかが体感できる。

英語が得意ではない人でも、それほど苦労せず進められると思う。最後のバリデーションを実装する箇所は端末の言語設定が日本語だとうまく動かないので、英語にするとよい。

10月に読んだ本

 今月は5冊読みました。

間違いだらけのソフトウェア・アーキテクチャ―非機能要件の開発と評価 (Software Design plus)

間違いだらけのソフトウェア・アーキテクチャ―非機能要件の開発と評価 (Software Design plus)

 

 

 個人で書いたRailsアプリをHerokuで動かしたりしていて、Herokuに関する基礎知識が日本語でひとまとまりになっているのはとても有難いです。巻末の付録にあるTwelve-Factor Appについても自分は読んだことがなかったので勉強になりました。Twelve-Factorのプロセスはステートレスかつシェアドナッシングであるべきというのを読んで、HerokuだけではDBの永続化や画像ファイル等の保存ができないことの理屈が分かりました。あと設定は環境変数に格納するとか、常識なのかもしれませんが新たな知見でした。

オブジェクト指向でなぜつくるのか 第2版

オブジェクト指向でなぜつくるのか 第2版

 

 

ソフトウェアテスト技法ドリル―テスト設計の考え方と実際

ソフトウェアテスト技法ドリル―テスト設計の考え方と実際

 

 

How Google Works (ハウ・グーグル・ワークス)  ―私たちの働き方とマネジメント

How Google Works (ハウ・グーグル・ワークス) ―私たちの働き方とマネジメント

 

 

あと9月にやっていたアンダースタンディング コンピュテーションの写経が途中だったりとかあるので、完走したい。。