10K Views
July 23, 22
スライド概要
at ミライノカイモノ2022
Flutterでアプリを 作った話 #ミライノカイモノ2022 Flutterアプリコンテスト
自己紹介 ● ● ● Twitterではだら(@dala00) 15年ほどフリーでWebエンジニア Webサービスもスマホアプリもやっています
自己紹介 ● ● 日々記事を書いたりもしています 本を出版させていただいたり ● Qiitaのアドベントカレンダー でいいね数1位になったり
自己紹介
Flutter歴
● 個人開発で2.5年、仕事で2年
なぜFlutterをはじめたか ● Webサービス色々作ったけど全く使われない ○ ● 流入してもらう方法がない スマホアプリはストア経由で流入がある ○ でもスマホアプリはしんどい ■ AndroidとiOSで工数2倍とかやってられない ■ Webみたいにぱっとアプデートできない ■ OSのアップデートに応じて要調整 ■ それにともないトラブルもよく起きる
なぜFlutterをはじめたか 2019年あたり、丁度Flutterの話題をよく見かけるようになった ● ● ● AndroidもiOSも作れる ホットリロード Dart (async/await)
すぐ作ってみた ● ● コードが一つで良いので簡単 AdMobやFirebaseなどもちゃんとマルチプラットフォームで動く ○ ● Unreal Engineなどゲーム系だと用意されていなものもあったりする Android、iOSの機能を使うものはネイティブ開発の知識も多少必要
Flutterの実装 全然よくわかってない状態で作った Widgetを作るという知識がなかった →staticメソッドでWidgetの 共通化を作りまくっていた
Flutterの実装 クラスの作り方もよくわからない ● ● ● コンストラクタの書き方も SQLiteを利用 便利ライブラリを知らない
Flutterは良い ● async/await ○ ● 宣言的 ○ ● 今はAndroidにもiOSにもある SwiftUIもある マルチプラットフォーム ○ Androidだけ作りたい、とかでもFlutterおすすめ
作ってみたアプリ チャット風会話ムービーメーカー
作った理由 ● シェア機能を用意することで広がることを狙った ○ ● Webサービスなどではよくある 「動画生成」という他の個人開発者がやらなそうなことを狙った ○ ゲーム以外だと毎日データを登録する積み上げ系のアプリをよく見る
作ってみたアプリ ● データは端末に保存 ○ ● 動画生成部分はネイティブ側と連携(iOS、Androidそれぞれ作成) ○ ○ ● Webの様にサーバーや通信がいらない。軽い でもUIや処理などがFlutter側だけですむだけで全然違う ネイティブ側のUI作成もかなりしんどい 多言語化
Flutterの実装 ちゃんとWidgetで分割
Flutterの実装 ● ● Hiveを利用 コンストラクタが便利
Flutterの実装 Riverpodを利用 アプリ内の状態を管理するための パッケージ
Flutterの実装 Hooksを利用 ● ● Reactでおなじみ 書き方がシンプルに なる場合も
リリースしてみたあと ● ぼちぼちは使われている ○ ● 月額課金も時々発生 ○ ● 本来は練習のためにつくったアプリだったが… ちなみに実装はRevenueCatという超簡単に実装できるライブラリ こういうデータをみて次どういったアプリが良さそうかを考えられる
作ってみたサービス
ご清聴ありがとうございました いろいろな楽しいアイデアを形にしてみてください!