無限大な夢のあと

テニスとアニメが大好きな厨二病SEのブログ

【書評】速習webpack ( @yyamada ) 

WINGSプロジェクトの書籍レビュアーに応募し、献本してもらったので、書評を書きました。
今回は表題にある通り「速習webpack 」の書評となります。

速習webpack 速習シリーズ

速習webpack 速習シリーズ

最近は業務ではiOSでネイティブアプリの開発を1年ほど行なっていて、Webフロントの方はからっきしだったので、今回を機会にJSのエコシステムの流れを掴みたくて、書評レビューアーに応募しました。

では早速、本題のレビューをさせていただきます。

まず、書籍を読み終えた感想をものすごく端的にいうと、
iOSの画面開発において、手元に置いておくと細かいプロパティの動作を確認できる細かい所に手が届く便利君」という印象です。

簡潔に書籍の「良かった点」をまとめます。(今回特に「改善して欲しい点」はないです。)

良かった点

  • Introdutionの説明で、モジュールハンドラーが必要になった経緯などから紹介していて、初心者にも優しい内容になっている
  • 図がふんだんに使われていることで、視覚的にも理解しやすい
  • 速習WebPackとあるが、かなり詳しく内容を説明していて、リファレンスとして使えそうな内容になっている
  • 最近だとよくあるBabel+Reactの組み合わせなどの設定方法もある
  • 開発/本番用の設定などしっかり現場で使うことを意識して作られている


具体的に現時点で業務でWebで何かする予定はないのですが、ReactNativeは未だ触れていないので今回をきっかけにWebPackで環境構築して簡単なアプリを作ってみようと思いました。
JSのエコシステムは流れが非常に早いので、今回の書籍をぜひ活かしたいと思います。」

以上、レビューとなります。

【書評】[改訂新版]Swiftポケットリファレンス( @yyamada ) 

WINGSプロジェクトの書籍レビュアーに応募し、献本してもらったので、書評を書きました。
今回は表題にある通り「[改訂新版]Swiftポケットリファレンス 」の書評となります。

[改訂新版]Swiftポケットリファレンス (POCKET REFERENCE)

[改訂新版]Swiftポケットリファレンス (POCKET REFERENCE)

私のモバイルアプリ開発のバックグラウンドを説明しますと業務ではiOSでネイティブアプリの開発を1年ほど行なっています。

では早速、本題のレビューをさせていただきます。

まず、書籍を読み終えた感想をものすごく端的にいうと、
iOSの画面開発において、手元に置いておくと細かいプロパティの動作を確認できる細かい所に手が届く便利君」という印象です。

簡潔に書籍の「良かった点」と「改善して欲しい点」をまとめます。

良かった点

  • iOSのレイヤの説明など冒頭からしっかりした説明をしてくれて、全体像を改めて理解できた
  • 自分が今まで作ったことのない画面の種類については、このリファレンスを見れば大体作ることができるくらい内容がしっかりしている
  • 図が使われていることで、視覚的にも理解しやすい
  • 動画、位置情報、カメラなどアプリでよく使う機能もカバーされている
  • 大量のサンプルコードがあり、活用をすることができる

改善して欲しい点

  • プッシュ通知、課金、復帰処理など通常のアプリでも使うような内容の機能の説明があると尚良かった
  • WebViewに関して、WKWebViewではなく、UIWebViewの説明が載っているなど改訂前の影響を受けて微妙に古い内容だったりした
  • UIに特化したリファレンスとしてはInsetやOffsetといったような実務で困る点についても記載が欲しかった
  • バージョン別のバグなどの罠も注記が欲しかった(例: iOS9,10でWKWebViewでPostをした時に、httpBodyが空になるなど)

個人的には今回の書籍はUIに特化したリファレンスとして、機能に特化したリファレンスを別途出してくれると嬉しいなと思いました。
また、自分的に気づいた細かい点としては、

  • いつも混乱するmapのクロージャーの書き方の例が5パターン載ってたりするのは、Swiftの記述が少ない中でたまに混乱するけど検索に出てこなかったりもするので、地味に嬉しかったりしました。
  • map().filter()というサンプルだと、lazyつけましょうくらいのこともコラムに書いてあると初学者は理解が深まったりすると良いなとも思いました。

みたいなのもありました。

気づいた誤字
P100 書式の説明でflatMapの説明なのに、前ページのfilterを使っている

以上、レビューとさせていただきます。

Swift 4プログラミング入門 iOS 11+Xcode 9対応

Swift 4プログラミング入門 iOS 11+Xcode 9対応

【書評】基礎&応用力をしっかり育成! Androidアプリ開発の教科書 ( @yyamada ) 

WINGSプロジェクトの書籍レビュアーに応募し、献本してもらったので、書評を書きました。
今回は表題にある通り「基礎&応用力をしっかり育成! Androidアプリ開発の教科書 なんちゃって開発者にならないための実践ハンズオン 」の書評となります。

基礎&応用力をしっかり育成!  Androidアプリ開発の教科書 なんちゃって開発者にならないための実践ハンズオン (CodeZine BOOKS)

基礎&応用力をしっかり育成! Androidアプリ開発の教科書 なんちゃって開発者にならないための実践ハンズオン (CodeZine BOOKS)

私のモバイルアプリ開発のバックグラウンドを説明しますと業務ではiOSでネイティブアプリの開発を1年ほど行なっており、
Androidの開発経験は業務ではまだありません。

本題のレビューをさせていただきます。

まず、書籍を読み終えた感想をものすごく端的にいうと、
アプリ開発で気にするような細かいポイントを押さえていて、これを読みながら作りたいものを大体作れそうだけど、なぜサンプルがKotlinじゃないのだ。。。」
です。

簡潔に書籍の「良かった点」と「改善して欲しい点」をまとめます。

良かった点

  • 画面遷移、ライフサイクルなどのアプリ開発者が気にする点を押さえている
  • バックグラウンド処理、メディア再生、通知、GPS、カメラ、ストレージなどのアプリを作る上での機能について記載がある
  • ViewのComponentの使い分けなど細かい点についても言及されている

改善して欲しい点

  • サンプルコードが全てJavaなので、Android3.0からサポートされているKotlinでのサンプルコードであって欲しかった(切実)
  • 復帰処理などの話くらいまであると、尚良かった。
  • アーキテクチャー寄りの話にはなりますが、「Android Architecture Components」に言及して説明があるとより嬉しかった

PDFなどで続編として「改善して欲しい点」についても記載があるような書籍が出ることを切に願います。

そして、iOSアプリ開発を進めて詳しくなった観点で見ると、本当に細かく記載があって痒いところまで手が届く書籍なので、
自分で作ったiOSのアプリのAndroid版をこの書籍を読んで作成しようと思いました。

以上、レビューとさせていただきます。

Kotlinイン・アクション

Kotlinイン・アクション

Androidを支える技術〈I〉──60fpsを達成するモダンなGUIシステム (WEB+DB PRESS plus)

Androidを支える技術〈I〉──60fpsを達成するモダンなGUIシステム (WEB+DB PRESS plus)

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

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

【書評】HTML5とApache Cordovaで始めるハイブリッドアプリ開発 ( @yyamada ) 

WINGSプロジェクトの書籍レビュアーに応募し、献本してもらったので、書評を書きました。
今回は表題にある通り「HTML5Apache Cordovaで始めるハイブリッドアプリ開発」の書評となります。

HTML5とApache Cordovaで始めるハイブリッドアプリ開発 (CodeZine BOOKS)

HTML5とApache Cordovaで始めるハイブリッドアプリ開発 (CodeZine BOOKS)


私のモバイルアプリ開発のバックグラウンドを説明しますと、業務ではiOSでネイティブアプリの開発を行なっており、Androidの開発経験は業務ではまだありません。
JavaScriptのレベル感としては業務で少し触ったりする程度です。


本題のレビューをさせていただきます。

実際に起動ができるまで

開発環境

node -v
v8.7.0
  • npm
npm -v
5.4.2
  • jdkのバージョン
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

AndroidでBuildできるようになるまで

Androidではandroidコマンドが非推奨になった影響などで書籍に書いている方法ではうまく行きません。
私は以下のアプローチで解決できました。

brew tap caskroom/cask
brew cask install android-platform-tools

具体的には以下のandroidコマンドのインストールで失敗します。

 brew install android

こちらに関しては、

brew tap caskroom/cask
brew cask install android-platform-tools

で代わりに環境は構築できました。
また、androidコマンドを使おうとすると、以下の表示がされて、非推奨になっていることがわかりました。

*************************************************************************
The "android" command is deprecated.
For manual SDK, AVD, and project management, please use Android Studio.
For command-line tools, use tools/bin/sdkmanager and tools/bin/avdmanager
*************************************************************************
Invalid or unsupported command ""

Supported commands are:
android list target
android list avd
android list device
android create avd
android move avd
android delete avd
android list sdk
android update sdk

Androidで起動できるまで

Androidを実行できるまでもandroidコマンドが非推奨の影響か、プラットフォームを追加する際にバージョン指定が必要になります。

cordova platform add android@6.2.3
cordova emulate android

また、今回の検証マシンでは元々Androidエミュレーターのパスを通したりして検証しましたが、ゼロから動かす際はここも調整が必要かもしれません。

実際にサンプルを動かして

Android自体は実機を持っていなかったのですが、iOSは実機が持っているので、こちらで実行したりしてサンプルを確認しました。
実機での起動は少し手順が必要ですが、そちらを終えるときちんと起動できました。
ただ、サンプル自体はそのまま動かず、plugin installが必要です。
また、全てのサンプルを動かしたわけではないですが、最初のcameraサンプル以外は動かないものが多かった印象です。
自分自身のライブラリの環境が最新であることも影響あると思います。

2017-10-15 18:20:43.793746+0900 Cdv4[431:36008] ERROR: Error: Can't find variable: device
2017-10-15 18:20:59.127256+0900 Cdv4[431:36008] ERROR: Error: Can't find variable: Connection

書籍を読んでみて

対象

書籍名にある通り、HTML+CSS+JavaScriptでWeb画面を作成できる人にとって、ハイブリッドアプリ開発の1歩目を学べる書籍だと思いました。
React-nativeなどだと、Reactを学ぶという過程をあるとは思いますが、今回のサンプルではそれも必要ではないので、Angularを使ってはいましたが、より入門者向けだと思いました。

全体的な感想

Cordova自体は初めて触ったのですが、Webと同じようなコードでそれぞれネイティブアプリを作成できるのはすごいなぁと思いました。
目次について、公式ページから引用させていただきます。
HTML5とApache Cordovaで始めるハイブリッドアプリ開発 - WINGS

第1章 Apache Cordovaで本格スマホアプリに挑戦しよう
第2章 Apache Cordovaでスマホアプリ開発を始める前の環境設定
第3章 カメラプラグインを使って、Apache Cordovaのサンプルアプリを作ってみよう
第4章 基本のプラグインを使ってハイブリッドアプリを作ってみよう
第5章 デバイスのファイルにアクセスするプラグインを使おう
第6章 ファイルを操作するためのプラグインで、テキストや画像をアプリ内に保存する
第7章 サーバへのファイルアップロード、ダウンロードを便利にするプラグインを使う
第8章 オーディオファイルの再生を便利にするプラグインを使う
第9章 マイクやカメラを使って音声・写真・ビデオデータを取得するプラグインを使う
第10章 カメラとアルバムから写真データを取得するプラグインを使う
第11章 連絡先データにアクセスするプラグインを使う
第12章 カレンダーの予定を管理するプラグインを使う
第13章 カレンダーを管理するプラグインを使って、予定の追加と削除を行う
第14章 Cordovaでアプリを公開するためのビルド方法をカスタマイズしよう
付録A プラグイン・参考資料

また、実際に作成するアプリで使いたいような機能の土台が一通り揃っているイメージで、仮にCordova自体を使わない場合でもハイブリッドアプリを作るに当たって参考になる書籍だと思いました。

[iOS/Android対応] HTML5 ハイブリッドアプリ開発[実践]入門 (Software Design plus)

[iOS/Android対応] HTML5 ハイブリッドアプリ開発[実践]入門 (Software Design plus)

iOSDC Japan 2017へスピーカーとして参加してきました #iosdc

iosdc.jp
表題の通り、前夜祭も合わせると3日間に及びiOSのお祭りに参加してきました!!!
色々バタバタしていて、2週間遅れの参加ブログになります。

スピーカーとして参加しての感想

今回、業務でつまづいた点をCFPとして提出したところ、採用していただき、発表してきました。

www.slideshare.net

資料作成について

前回のScala関西での発表の失敗から、同僚にも厳しめにレビューしていただき、以下の点などを工夫しました。

  • アニGifを使って、紹介したい機能が伝わるように改善しました
  • コードを見やすくするように、スクショを使った
  • 全体的にとにかく文章を少なくした

発表を行って

当日の発表は、参加者も100人越えで、笑いも取れて、質問も出たりなどして今までの発表の中では一番成功したかと思います。
終了後には、色々な方も声をかけて頂いたりして、嬉しかったです。

また、初日の前夜祭の後のスピーカーディナーというスピーカー限定の懇親会では、他の企業の方の採用している技術(GraphQL)などについてもお話を聞けたりして、交流を深めることができました。

感想

総じて、カンファレンスに参加する時は、スピーカーとして参加する方が当事者としてお祭りを盛り上げている感もあり、準備が相当大変ではありますが、メリットしかないと思いました。

参加者としての感想

参加したセッション

また、参加者側としては、参加できなかった1日目の前夜祭、2日目の自分の発表前後以外では、以下のセッションを聞かせていただきました。

1日目

資料を一生懸命作っておりました!!!!

2日目
  • Swift4.0対応しようとしたら大変な目に遭った話

speakerdeck.com

speakerdeck.com

  • LT

資料は以下のまとめページからご覧ください。
iOSDC 2017 まとめ - Qiita

3日目
  • Human Interface Guidlinesから滲み出る限界感を考える

speakerdeck.com

  • iOSエンジニアのためのNLP基礎

speakerdeck.com

speakerdeck.com

speakerdeck.com

  • 実践CloudKit

資料のリンクぎれ?

  • LT

資料は以下のまとめページからご覧ください。
iOSDC 2017 まとめ - Qiita

参加したセッション選び

Reactiveなども興味があったのですが、使ったことないAPIの話やUI、機械学習系の話を中心に聞きました。
また、聞きたいセッションが被っていたりして、聞けなかったものも多く、後で資料をゆっくり見ようと思っていましたがまだ見れていないです。。
ビデオなどがアップロードされたら、ぜひ見てみようかと思います。
また、LTは全て見たのですが、どれも笑いが取れる仕組みがあり面白く、普通のセッションよりハードル高いのではないかと思ったくらいでした。
600人くらいの前で発表するのは緊張しそうですが、1度は経験してみたいです。

感想

懇親会も全て参加したのですが、自分達が業務/プライベートで作っているアプリを紹介してくれたり、色々情報交換できて楽しかったです。
また、スタッフさんの熱量もすごく、まさに文化祭に参加している感じでとても楽しかったです。
翌日がお休みだったということもあり、ゆっくり休めたのも満足度が高いです。

全体の感想

控えめに言っても最高でした!!!
次回もぜひスピーカー側で参加したいです。
スピーカーの皆様、スタッフの皆様、本当にありがとうございました!!

【書評】Angular アプリケーションプログラミング

今回もWINGSプロジェクト様( @yyamada )の書籍レビュアーに応募させていただき書評を書かせていただくことになりました。
WINGSプロジェクトの皆様、著者の山田様ありがとうございます。
今回は表題にもある以下の書籍を献本していただきましたので、こちらのレビューをさせていただきます。

Angularアプリケーションプログラミング

Angularアプリケーションプログラミング

ここからレビューとさせていただきます。

今回、Angularのバージョンが4になったことでどんなところが変わったのかをざっと見ようかと思ったのですが、文法的には多くは変わっておらず、既存実装のパフォーマンス向上が図られたと言う印象でした。

前回のAngular2のバージョンの書籍の際にもレビューをさせていただきました。
dke-msy-node.hatenablog.com

その書籍と比較した時大まかには流れは一緒ですが、以下の点に違いがある印象です。

  • フィルターという名前がパイプという名前に変わっていて、機能の説明量が増えた
  • 全般的に網羅性が高くなっており、前回なかった「モデル駆動型のフォーム」の説明などReactive的なトピックも取り扱っている
  • Typescriptの簡易リファレンスが追記された

今後、新規プロジェクトでAngular4を採用する際には、ぜひ活用させていただきたいと思いました。

大まかには前回の書籍レビューブログとの差分になりますので、そちらもご覧ください。

現時点でAngularを始める方にとっては、リファレンス的に購入をおすすめできるものだと思います。

Scala関西Summit 2017に参加しました! #scala_ks

関西のScalaの祭典、Scala関西Summit 2017に参加して来ました!
下記はスピーカー視点で失敗したなぁと思った内容をまとめているので、興味のある方はご覧ください。
dke-msy-node.hatenablog.com

こちらのブログは参加しましたブログ?で、他の方のセッションの話やスピーカーの方々と前泊した話、懇親会/2次会の話などをこちらにまとめます。

スピーカーの方々と前泊

弊社の河内さんが今回Scala関西Summit 2017に参加する肩に声をかけ有志でAirbnbで宿を取って前泊しました!
全部で17人も参加したすごい規模で、10名以上がスピーカーという豪華な顔ぶれでした。
1泊組と、2泊組に別れて宿を取り、12時くらいまではそれぞれが行き来するような感じでした。
全員ではないですが、いるメンバーだけで取った写真はこちら(よこなさんはちょうど遊びにきていました!)
f:id:noimpslmtbrk:20170911004254j:plain

ちなみにこの写真を取った後には全員集合し、資料の最終チェックやらをしつつ、お互いの色々な情報交換をした有意義な時間でした!
この日話題をかっさらったエフコードさんの関係者だらけだったので、みんなでお話を伺ったりもしました。
【プレスリリース】チーフアーキテクトとして中村学が入社、顧問に水島宏太氏・麻植泰輔氏が就任。プログラミング言語Scalaを主軸とする開発組織体制を強化。 – NEWS

また、この日に有志で行った亀寿司の美味しさが今でも忘れられません。
https://tabelog.com/osaka/A2701/A270101/27001919/
f:id:noimpslmtbrk:20170911010015j:plain
f:id:noimpslmtbrk:20170911010013j:plain
f:id:noimpslmtbrk:20170911010017j:plain

f:id:noimpslmtbrk:20170911010009j:plain

参加したセッションの話

私は以下のセッションに参加させていただきました。

  • 元インフラエンジニアがScalaを触ってつまづいたところ。
  • Scala and Akka apps on Kubernetes in ChatWork

speakerdeck.com

  • Scala の Functional Programming を支える技術

www.slideshare.net

  • Akka on RaspberryPi

www.slideshare.net

  • Scala on JVM をプロファイリングするツールの紹介

speakerdeck.com

  • Ladder of CQRS+ES

www.slideshare.net


個人的にDDDをやっている身としてCQRSはよく聞くのですが、実践するにあたってどんな苦労があるのかが伝わって来る「 Ladder of CQRS+ES」はすごく興味深かったです

CQRS自体はエリックさんのDDD本、実践DDDの方にも取り扱われていない内容です。

エリック・エヴァンスのドメイン駆動設計

エリック・エヴァンスのドメイン駆動設計

実践ドメイン駆動設計

実践ドメイン駆動設計

書籍的には以下で取り扱われているらしいです。

私自身がCQRS+イベントソーシングの理解度が低いので直接的に中身には触れませんが、それらを実装するにあたって、どんな苦労があって、どのようなアプローチを取っていったかがラダーを登っていくようにわかるという資料になります。
あとでじっくり読み直したい内容です。

懇親会の話

LTもあったりなど大いに盛り上がりました!
speakerdeck.com

www.slideshare.net

懇親会では、本当に色々な方とお話させていただき、とても勉強になりました!
割合、スピーカの方々とお話する割合が多かったのは、スピーカーだった+前泊の河内さんがつながりを作ってくださったおかげだと思います。
本当にありがとうございました。

懇親会の後の2次会の話

麻植さんが声をかけてくださり、有志(ただし、30人!)で2次会に行きました!
f:id:noimpslmtbrk:20170911004246j:plain

こちらでは私のテーブル付近ではスクラムの話で盛り上がり(私が暴走してただけ?)、他社さんではどのようにスクラムをやっているかのお話も聞くことができてとても良かったです。続きもお話したいので、ぜひ新宿GeekLoungeにみなさんお越しください!
shinjuku-geek-lounge.connpass.com

最後に

控えめに言ってもScala関西Summit 2017、最高でした!
来年もぜひ参加したいです!!!!!