potatotips #66 (iOS/Android開発Tips共有会) に登壇してきました

f:id:numatch-jx:20191120000627j:plainこんにちは、Androidエンジニアのぬまっちです。(@nuMatch)
半年ほど前からFlutterエンジニアとしてもデビューしてるので、今はAndroid/Flutter (iOS) エンジニアという感じでしょうか。

あっという間に冬が近づいてきました。 夏にはFlutter布教の為、社内でFlutterモブプログラミング回をしたのが懐かしくなります。 tech.jxpress.net

今回はyappliさんで開催されたpotatotips #66 (iOS/Android開発Tips共有会)にてLTしてきましたので、その紹介をさせて下さい。

potatotips.connpass.com

登壇前

今回、自分がLTで紹介したかったメインテーマは「怖くないよFlutter」でした。
iOS/Android開発におけるTipsがメインの勉強会なので、
「Flutterって最近良く聞くけど、まだ片方のプラットフォームしか触ったことないな」
って方を対象に、Androidエンジニア視点でFlutterに入門したらクロスプラットフォームが身近になった、という紹介をしたいと思いました。

という事でタイトルは
「Android エンジニアが Flutterに入門して驚いたこと3点」
です!

今回、久しぶりの登壇(JXエンジニアになってからは初)という事もあって準備・練習の段階から社内エンジニアに手伝って頂きました。
この場を借りて感謝!です!

f:id:numatch-jx:20191120000627j:plain

LT

実際に登壇で使った資料はこちらになります。

speakerdeck.com

怖くないよ flutter doctor

Flutter入門する方がほぼ必ず叩くだろうコマンド「$ flutter doctor」について紹介しました。

FlutterSDKのインストールが完了し、PATHが通っていれば flutter doctor コマンドを実行することが出来ます。
flutter doctor コマンドは、開発環境がFlutterで開発できるか診断してくれる便利な機能です。

で、試しに叩いてみるとかなり怒られると思います。
AndroidまたはiOSどちらかのプラットフォームのみの開発者なら、Android Studio / Xcodeが片方しか入ってない事も多いかと思いますが、両方揃えないといけません。
特にAndroidエンジニアの方はiOSの開発環境が整っていないと思います。
HomebrewやCocoaPodsも足りないと怒られますが、ちゃんと順番に何をすればいいのか指示してくれるので怖がる必要はありません。

言われた通りにコマンドを叩いていくとFlutter開発の為の環境が作られるはずです。
自分はAndroid StudioでiOSのシミュレータが立ち上がるのを体験した時、軽く感動を覚えました。

入れやすいよ Plugin

自分が声を大にして言いたい、

「FlutterにおけるPluginの導入にしやすさ」

について語らせて頂きました!
何故ここまでピックアップするかというと、理由が大きく2つあります。

  1. 検索のしやすさ

使いたいPluginを探したい時は、まずpub.dev/flutterで検索しましょう。( Flutter packages

LTではAndroidにおける値の永続化の入門であるSharedPreferenceを例にとって紹介しました。

(紹介したPluginはこちらになります↓)

shared_preferences | Flutter Package

検索窓でSharedPreferenceと入力すれば、現在導入可能なSharedPreference用Pluginの一覧が出てくると思います。
似たような名前のPluginが沢山あると思いますが、選ぶポイントとしては

  • 「flutter.dev」の公式であるかどうか
  • 「performance score」が100、または100または100に近いかどうか

が大事かと。

  1. クロスプラットフォームのしやすさ

導入したいPluginが決まったら「pubspec.yaml」に追加記述しましょう。
記述したらflutter pub getコマンドを叩く事をお忘れなく。

基本的にはこれだけです。

PluginによりますがSharedPreference用Pluginではプラットフォーム固有の設定は不要で、導入の準備が完了になります。
AndroidのManifestファイルへの記述や、iOSのPodfileへの書き込みいらずになる事が多いのは大変ありがたいです。
「pubspec.yaml」で両プラットフォーム対応が完結するのはFlutterの大きな強みになると思います。

Flutter と Firebaseの相性の良さ

クロスプラットフォーム入門としてFlutterとFirebaseは抜群の相性を誇ります。
Flutter公式で専用のPluginを用意されていますし、
(他にも各FrebasePackage用のPluginが用意されています。)

ドキュメントは日本語が用意されています。
Flutter アプリに Firebase を追加する  |  Firebase

今回のLTでは時間が足りずに詳細は語れませんでしたが、

  • Firebase Authentication
  • Firebase Cloud Messaging

については後日、JX通信社のアドベントカレンダーにて紹介したいなと思っています!

qiita.com

@nuMatchの担当する回をお待ち頂ければ幸いです!

登壇してみて

振り返ってみると、今回のLTでFlutterのTipsを紹介していたのが自分だけだったのが印象的でした。 また、Twitterで参加者の方の感想で
「聞きやすかった」、「Flutterはまだ入門したことないので、定期的に紹介されるのは嬉しい」
との声を見かけたので、準備した甲斐があったなと嬉しく思いました。

今回はFlutterにおけるクロスプラットフォーム入門についての登壇でしたが、次は実際にプロトアプリ開発で出会った事例を元にした内容でLT出来ればと思います!