shuhei's lab

暇なときにテック系とか日常のこととか書きます

技術書典4 : iOSアプリ開発 -デザインパターン入門- を読んでの感想

書籍と概要

今回 千葉大志(@nanamoto7483)さん著「iOSアプリ開発 -デザインパターン入門-」を読みましたので書評を書かせていただきます。
久々にiOSやりそうな(やる)ので期待して購入しました。

f:id:shuhei_lab:20180507233649j:plain

本書の構成

第1章から4章までは前準備で5・6章が本編となります。

感想

前準備で入門書にはあまり書かれていないことが書かれていて、一段上のレベルのiOSエンジニアとして必須なTIpsがたくさん書かれています。
特に第4章は「入門レベルはわかった。で、実務に耐えうるコーディングは?」となったときに使えるTipsがありこの章だけでも読み応えあります。
weak知らないとかAlamofireからやっちゃった人は特に読んだ方が為になると思います。

後半が本編だがデザインパターンというかアーキテクチャーでの実装例と解説となっています。
私みたいにしばらくするとすぐにiOSの実装の仕方を忘れてしまう人間には丁度いい例題レベルでした。
ただ、アーキテクチャーだったらFluxあたりも含めてもらえると個人的には嬉しかったかなーと思います。

良かったところ

サンプルでViewをStoryboardを使わなかったところはコードを書いていて楽でした。 いちいちStoryboardと行き来するのは面倒なのでこの辺は結構やっててサクサク進められて良かったと感じました。
あと、循環参照について比較的初心者の方にも分かりやすいように書かれていたのはとても好感が持てました。

残念なところ

ちょっと誤字・誤記が多いかな…。 ここはぜひ商業誌化のときに直して欲しいところです。

終わりに

商業誌化が決定しているらしいので、その時には誤字などの不備とRxSwift版のMVVM、Fluxなどに言及した内容になっていることを期待したいです。

技術書典4 : 初めてのシングルページアプリケーション Vue.jsとFirebaseで作るミニWebサービス を読んでの感想

書籍と概要

今回は「初めてのシングルページアプリケーション Vue.jsとFirebaseで作るミニWebサービス」の感想です。
こちらは電子版で購入しました。

booth.pm

購入した理由は、少し前にVue.jsでWebやりそうな雰囲気あったので少しだけ勉強しましたが、最終的には自分がやることはありませんでした。
ちょっとかじった程度で中途半端な感じで終わって気持ち悪かった…少しずつでいいからWeb系もできるようになっていきたいと思い、技術書典4の後にTwitterのTLを見てて本書が良さそうだったので購入しました。

本書の構成

構成としては以下の通りで、メインはMarkdownエディターを作成し、機能追加していくところになります。

  • サーバーレスシングルページアプリケーションの基本
  • 開発環境セットアップとデプロイ
  • Googleアカウントでのユーザー登録とログイン状態判別
  • Markdownエディターの作成
  • Webサービスとして公開するまでの必要な準備

感想

まったくの初心者だと厳しいかもしれませんが、HTML / CSS / JS / Vue.jsを少しだけでもやったことがあればそこまで苦しむことなく読み進められるはずです。
最初は最低限の機能からアプリにどんどん機能を追加していって、さらにはFirebaseとの連携もできちゃう…ここまでやると結構達成感あります。
Vue.jsもよい復習になりました…

個人的に重要だなって思ったのは第7章の「Webサービスとして公開するまでの必要な準備」だと思いました。 最終的にWebサービスとしてリリースするには「これまで本書やってきたことだけでは足りないよ、こういうところもしっかりやらないとユーザーも定着しないし後で困るよ」っていうことが短いですが記載されているので必ず読んでおくといいと思います。

終わりに

Webもやってみると結構面白いですね!
普段アプリばっかだから、毎日少しずつでいいからWebもやっていこう。

技術書典4 : DNSをはじめよう 〜基礎からトラブルシューティングまで〜 を読んでの感想

書籍と概要

技術書典4の戦利品感想第4弾。
今回は @mochikoAsTech さんの「DNSをはじめよう ~基礎からトラブルシューティングまで~」を読み終えたので感想を書きました。

f:id:shuhei_lab:20180502220648j:plain

モバイルアプリエンジニアなのに何でこの本を手にしたかというと…このツイート見て興味を持ってしまった。

400部!?
インフラあんまり得意じゃないし、ちょっと為になるかもしれないから買ってみよっていうちょっと軽い気持ちでした、スミマセン…

本書の構成

まえがきの想定する読者層に1つに以下が書かれていてこう思いました。

「インフラがよく分からないこと」にコンプレックスのある人

自分やないかい…

感想

ドメインの購入やAWSアカウント開設がものすごく丁寧に書いてあるので初心者でもまずつまづくことはないと思います。
特にお名前.comでのドメイン購入はかなり説明を割いていて、初心者がよく陥りがちな落とし穴についても細かくフォローされています。 digやwhoisを使ってDNSを理解していき、なおかつRoute53にも少し触れるのでインフラエンジニアになった気になれますw

また140ページほどありますが、結構サクサク読めるところも○。

筆者の「分からない人の気持ち」に立った優しい説明で、インフラ苦手な私にもグッとハードルが下がって読んでいて苦痛は一切ありませんでした。

製本の質もすごくいい…これで本当に¥1,000なの?

欲を言うとEC2でWebサーバー立ち上げてアクセスするドリルがあると初心者は実感が湧いてよかったかも。

終わりに

インフラコンプレックスの自分としてはmochikoAsTechさんがまた別のネタでインフラ系の本書いていただけたら即買いしてしまうでしょう。
とにかく良書でした!!

電子版も販売されてますので製本版購入できなかった方はこちらからどうぞ。

booth.pm

技術書典4 : Swiftで書いておぼえるTDD を読んでの感想

書籍と概要

近々またiOSアプリ開発をやりそうなので、技術書典4ではiOS / Swiftの本は少し多めに買いました。
そのうちの1冊、ダンボー田中(@ktanaka117) さんの「Swiftで書いておぼえるTDD 」を読み終えたので感想を書きます。

f:id:shuhei_lab:20180502192859j:plain

本書の構成

  • TDDとは
  • 書いておぼえるTDD
  • 2018年現在のSwiftでのTDD開発
  • 参考文献

メインは第2章の「書いておぼえるTDD」となります。
ここでもくもくレッド → グリーン → リファクタリングを繰り返し練習します。

感想

TDDではレッド → グリーン → リファクタリング のサイクルとリズム、仮実装 / 三角測量 / 明白な実装 をうまく使い分けし、歩幅を調整して実装していくことが重要だと理解できました。
実際コーディングしながら気付いたことはだんだんスピードが上がっていくのでテスト書くのが気持ちよくなるところがポイントですね。

TDDのメリット・デメリットもちゃんと記述されています。
何が何でもTDDではなくちゃんと開発チームで話し合い、重要な部分はテストファーストで担保して残りはコストとの兼ね合いで実装後すぐテストを書くという割り切りもありとの柔軟な考え方もすごく好感が持てました。

現在のSwiftでのTDDの問題点にも言及していて、JavaやKotlinだとMockitoやPowerMockなどが使えて便利ですが、SwiftではMockがあまり充実していないのが意外でした。
これはツライですがつい最近までSwiftのリファクタもままならなかったXcodeなので、Mockうんぬんよりそもそも開発環境周りの土壌が良くないなというのが個人的な感想…。

ビルドが遅い問題の解決方法ではいきなり札束で殴ってくるところは吹きそうになりましたw

終わりに

本書で扱っている言語はSwiftでしたが、本書の内容はどの言語でも参考になるはずです。
気になる方は電子版のほうが発売されているので購入を検討してみてはいかがでしょうか。

booth.pm

技術書典4で買った本が読み終わったら参考文献にあった「テスト駆動開発」を読んでみたいと思います。

Macbook Pro 15インチ 整備品を買いました

f:id:shuhei_lab:20180501190625j:plain

購入に至った経緯

長年愛用していたMacbook Pro 13インチ 2013Early(古っ)が突如変な音とともに落ちてお亡くなりになりました。
一応ダメ元でビックカメラで修理査定してもらったところ、¥63,000…
WWDCを1ヶ月後に控えた今何故…と非常に悩んだ末に、初めて整備品に手をつけました。
www.apple.com

スペック

15インチ 2016Later(Core i7 2.7GHz / メモリ16GB / SSD512GB / GPU Radeon Pro 455)をチョイス。 CPUとGPUを少しスペックダウンさせました。約¥240,000くらい。
何故最新を選ばなかったかというとWWDCを控えてモデルチェンジは確実ですが、すごいモデルチェンジで悔しくなっても近いうちに買い換える事を想定してこのモデルにしました。
なお、13インチはメモリ16GBの在庫がなく断念。

使用感

品質

整備品ということもあり当初は不安もありましたが、届いてみれば傷一つない新品同様。
さらにこれに1年保証が付くのでとりあえず1年は使える安心感があります。

サイズ

13インチから15インチへのサイズアップなのでかなりデカく感じます。
重さもそれなりにありますが、個人的には13インチ2013Earlyもそこそこ重かったので重さは気になりません。

スクリーン

広い。13インチよりかなり広く感じます。
Android Studioの横にエミュレーター置いてもあまり窮屈に感じません。

キーボード

賛否両論あるキーボード。 そんなにキーボードにこだわりのない私でも打鍵音は気になりました。だんだん慣れてきましたが、気になる人は気になるでしょうね…
埃で故障しやすいとの噂もあって少々不安はあります。

タッチバー

こちらも賛否両論ですが、私はデフォルトをファンクションキー設定に変更して終了。
以上。

マシンパワー

全く問題ないです。
スペックを抑えましたが、ゲームをやらない私にとっては十分なマシンパワーです。

バッテリー

やや減りが早いなーと感じます。

終わりに

最新モデル不要だったり、予算がキビシイなどの場合は整備品でも良い選択肢だと思います。
予想外の出費でしたがそこそこいい買い物できたので満足とします。

上に書きませんでしたが、スピーカーのプツプツにゴミが詰まったら気になりそうな予感…
早くメモリ32GBモデル出ないかなー。

技術書典4 : 大きめのAndroidアプリでの設計を考えてみる 〜Pocket〜 を読んでの感想

書籍と概要

今回は @kgmyshinさんの「大きめのAndroidアプリでの設計を考えてみる 〜Pocket〜」を取り上げてみたいと思います。

読む前の準備

前提としてDDD(ドメイン駆動設計)の知識がある程度必要です。文中でもDDDの用語や考え方が出てきます。 私は「エリック・エヴァンスのドメイン駆動設計」を読んで途中で時が止まったままだったので、こちらの「わかる!ドメイン駆動設計 〜 もちこちゃんの大冒険 〜」を読みました。
booth.pm

ただ、こちらだけでは特に戦術的設計の詳細がない(続編で掲載予定?)ので「実践ドメイン駆動設計」も一緒に読むことをオススメします。

実践ドメイン駆動設計 (Object Oriented SELECTION)

実践ドメイン駆動設計 (Object Oriented SELECTION)

DDDは私もイマイチ理解できていない部分が多くて難しいですが、上の2冊をサッと読んで分かった気になってから本書に臨みましょー(適当)

本書の構成

  • なにを作るのか知り尽くす
  • マルチモジュール化
  • レイヤー化アーキテクチャで実装
  • domainレイヤー
  • uiレイヤー
  • usecaseレイヤー
  • infraレイヤー
  • モジュール間連携

感想

DDDの要素でいうと、まえがきの一部分と第1章が戦略的設計でそれ以降が戦術的設計という構成になっています。 筆者の戦術的設計ノウハウがコード例とテストコードともに記述されていて、何故こうするべきか?というところも触れられていてとてもわかりやすかったです。
個人的に1番良かったところはUseCaseレイヤーを追加した経緯が書いてあるところでした。私も大なり小なりアプリをいくつか開発しましたが、UseCaseレイヤーは冗長ではないか?と思うケースが多々ありました。結果UIが膨れるという失敗もしたので、本書を参考に次回以降は良い設計ができるように心掛けたいと思います。
少し惜しいなと思うのは1章(戦略的設計)にもう少しボリュームがあっても良かったかなという点ですが、ここはあえて力を入れず戦術的設計に重きを置いた構成にしたのかもしれないですね。

終わりに

Pocket版とのことなので完全版も期待したくなる内容でした。
本書と「わかる!ドメイン駆動設計」、「実践ドメイン駆動設計」を読むことでDDD知識やより良い設計のノウハウが得られると思います。
ひと通り読み終えた後に何かのサービスを参考にして設計・実装をしてみるのも良いプラクティスになるでしょう。

電子版も検討中とのことなので、売り切れで購入できなかった方は定期的にチェックしておくと買えるかも。

早く途中まで読んだ「エリック・エヴァンスのドメイン駆動設計」のほうを再チャレンジしたいな…

技術書典4 : Flutterミニレシピ を読んでの感想

はじめに

4/22に技術書典4に行きました。初めての技術書典。

50分くらい前に着いたのにもう既に長蛇の列で不安になりましたが、概ね欲しいものは買えました。

せっかくなので購入した本の感想を書いていこうと思います。

そもそもブログ書くのも10年ぶりくらいwなんですが、書こうと思ったのは心の中に以下のツイートが流れて来たのがきっかけです。

書籍と概要

ということで、今回は@konifarさんの「Flutterミニレシピ」を所感をまとめさせていただきます。

f:id:shuhei_lab:20180424112901j:plain

FlutterはGoogle I/O2017で発表されたAndroid / iOS クロスプラットフォームSDKで、現在Beta2となっています。

 

本書の構成は以下のようになっています(雑)

  • テーマ
  • カスタムフォント
  • 画面の向きに応じたレイアウト
  • フェードインアニメーション付きイメージ
  • 見出し付きリスト
  • データ永続化
  • ネットワーク
  • リンク集

感想

著者のkonifarさんが

Flutterの導入から半歩先くらいの、Flutterでアプリを作るためのちょっとしたレシピ

と書いている通り、公式のCookbookCodelabさわり始めたくらいからオリジナルアプリを作り初めの方にピッタリのレシピ本だと思います。

私もCookbookCodelabやった程度のレベルですが、パッケージからのフォント読み込みやSQLiteは公式プラグインがないこと(あるだろと思い込んでた。非公式ならある)、画面向きに応じてのGridViewのカラム数変更などは大変参考になりました。

ただし、本書のコンセプトと外れるためSDK導入やDartの詳細には触れていないので、0から始める方は公式や他の日本語記事を参考にしてある程度Flutterについて分かってきたら本書を手に取るといいと思います。 

あと最後の著者紹介でとにかく表紙イラストが大変だったことが伝わってきますw

終わりに

次回作も期待。

Flutter楽しい!ときめきます!!

余談ですが、Kyashで決済するとkonifarさんめっちゃ喜ぶので次回はみんなKyashで決済しましょー。

 

他の書籍に関してもできる限りブログにアップしていきます。