LTセッション

CustomMultiChildLayoutを使って、あなたの思い描く自由なレイアウトを作ろう!

u5_03 すぎー

概要

FlutterやiOSネイティブアプリ開発でも使われるSwiftUIなどの宣言的なUIは直感的で簡潔な書き方ができる一方、複雑なレイアウトを実装しようとした時に苦戦することがあります

そんな困った時に、活用できるのがCustomMultiChildLayoutです!
CustomMultiChildLayoutを使うことで、複数のWidgetを自由に配置することができます
そのため実際のプロダクトで凝ったレイアウトを追加したい、また個人開発で遊びで面白いレイアウトを作りたいと思った時に活用できます!

このトークではCustomMultiChildLayoutについて、以下のポイントを紹介します

  1. CustomMultiChildLayoutの概要
  2. 実装の活用例
  3. SwiftUIなどの他のframeworkの仕組みとの比較

発表では社内のライブ配信アプリでの活用事例も含めたあんなものやこんなものをお見せします!(何が見れるかは発表をお楽しみに!)
この発表を通じて、皆さんがUIを実装する方法の選択肢を広げて、よりよいUI・UXを提供することの手助けができればと思います!

想定視聴者

  1. CustomMultiChildLayoutを使ったことない人・知らない人
  2. 標準Widgetだけでは実現が難しいUI実装にチャレンジしてみたい人
1
LTセッション

FlutterのP1のissueにはどんなものがあるのか

EXCode013 mori

概要

Flutterは日進月歩でバグの修正や機能的な改善が続けられています。
私たちがアプリを開発する中で、「これはFlutterのバグなのか、それとも仕様なのか?」と惑わされることもあるでしょう。
しかし、実際にFlutterのissueについて読み、まとめられている方は少ないのではないでしょうか?
このLTでは、FlutterのHigh-priorityなissueに指定されている「P1ラベル」が付けられたものをまとめて紹介し、開発にどのように役立つか解説していきます。

想定視聴者

  • Flutterのissueを把握したい人
  • よりFlutterに根ざして開発したい人
1
LTセッション

より良いLint設定を追い求めて

ynoseda 野瀬田 裕樹

概要

あなたのプロジェクトのLint設定、今どうなっていますか?
このセッションではより良いLint設定にしていくための基本的な知識から実際の指定例までを解説します。

  • FlutterにおけるLintの設定方法
  • Lintのルール一覧
  • 著名なLintパッケージ
  • 最近追加されたLintルール
  • おすすめのLint設定

想定視聴者

  • FlutterのLintについてキャッチアップしたい方
  • Lintの設定に悩んでいる方
  • 最近のLintルールをキャッチアップできていない方
LTセッション

過去1年間のFlutterのアップデートをおさらいしよう!

ynoseda 野瀬田 裕樹

概要

四半期ごとに行われるFlutterのアップデート。
日々の業務に追われてどんなアップデートがあったかお忘れの方も多いと思います。
そんな忙しい方に向けて、過去1年間のFlutterのアップデート内容を10分間にまとめます。

想定視聴者

Flutterの過去のアップデート内容を一通り復習したい方

LTセッション

FlutterとVertex AI for Firebaseを用いた写真解析アプリのプロトタイプの制作

Aosanori620 おだてつ

概要

現在、生成AIを用いたアプリケーションが増加しています。最近では、既存のデータと連携して社内ドキュメントの検索など、業務効率化に利用されることが多くなっています。また、生成AIはデータ分析も可能であり、構造化データだけでなく、図表や画像といった非構造化データに対しても認識能力を持ち、分析が可能です。

私は写真を撮ることが趣味で、上達するために上手な人の写真をよく研究しています。しかし、自分の写真に対して客観的なアドバイスをもらえる機会が非常に少ないため、せっかく上手な人の写真を研究しても、自分の写真はどこかパッとしない感じがするものの、上手な人との違いや改善点が分からず、行き詰まることがよくあります。

そこで、生成AIの画像認識能力に注目し、写真教室の先生のようにフィードバックをしてくれるアプリのプロトタイプを、FlutterとVertex AI for Firebaseを用いて開発しました。本セッションでは、その作成過程について発表させていただきます。

想定視聴者

  • 生成AIを使用したアプリケーションに興味がある方
  • 写真撮影が好きな方
LTセッション

Accessibility release checklistにならってサンプルアプリをアクセシビリティ対応してみる

概要

アクセシビリティ対応は単に利便性を向上させるだけでなく、多様なユーザーがアプリケーションを使いやすくするための重要な要素となります。
Flutterの公式ドキュメントではアクセシビリティ対応のための一連の基準を提供し、開発者がアプリケーションをより使いやすく、アクセシブルなものにするためのガイドラインの「Accessibility release checklist」を提供しています。

本セッションではサンプルアプリである"Counter App"を「Accessibility release checklist」に倣いながら追加実装を行ったアプリのソースコードを用いて、Flutterにおけるアクセシビリティ対応について解説していきます。

想定視聴者

  • Flutterにおけるアクセシビリティについて知りたい人
  • Flutterについて最近開発を始めた人
LTセッション

OpenApi Generatorによるクライアントコード自動生成とRepository層におけるテストコードを考える

yamahiro248 yamahiro248

概要

OpenApi Generatorによる通信周りのDartのクライアントコードを自動生成できる。
このコードを使ってRepositoryの実装を行なっていくことになる。
恐らく、多くの方は基本的な方針として「swaggerのYAMLファイルをメンテナンスする」としたいはず。

そうなると、生成されたコードには一切の手をつけないままで、
プロダクトコードとUnitTestコードともに動作させられるコードを書く必要がある。

このコードの中で
「どのようにテストコードを書いたらよいか」を一つのアプローチを実例を踏まえて説明をしたいと思います。

想定視聴者

OpenApi Generatorによるプロダクトコードへの反映を考えているエンジニア
テストコードの書き方が気になっているエンジニア

LTセッション

生成AIでデザインからコード出力はどこまでできるのか?2024年版

yamazaking0 Shoichi Yamazaki

概要

生成AIの急速な進化により、私達の生活や仕事においてAIを利用することが身近になりました。
2024年現在、複数の生成AIサービスが提供されており、チャット形式で疑問に答えてくれたり、コーディングのサポートなど徐々に私達の生活に欠かせないものになりつつあります。

本セッションでは、単一の生成AIサービスを用いて、デザインからFlutter用のコード出力した場合のポイントやTipsを深堀りする形で解説していきます。(ChatGPTを想定)

想定視聴者

・AIに興味がある

・プロトタイプを爆速で開発したい

・デザイナーやPMなど、エンジニア以外でも開発に興味がある

LTセッション

すべて自腹!各種サービス徹底比較!生成AIでデザインからコード出力 2024年版

yamazaking0 Shoichi Yamazaki

概要

生成AIの急速な進化により、私達の生活や仕事においてAIを利用することが身近になりました。
2024年現在、複数の生成AIサービスが提供されており、チャット形式で疑問に答えてくれたり、コーディングのサポートなど徐々に私達の生活に欠かせないものになりつつあります。
本セッションでは、生成AIの中でも特に注目されている「画像からコードを生成する機能」に焦点を当てます。ChatGPTやGeminiをはじめとする最新の生成AIサービスを徹底的に比較し、読み込ませたデザインからFlutter用のコード出力結果にどのような違いがあるのかを明らかにします。また、性能や使い勝手を実際の例を用いて検証・比較をしていきます。

想定視聴者

・AIに興味がある

・プロトタイプを爆速で開発したい

・デザイナーやPMなど、エンジニア以外でも開発に興味がある

LTセッション

ネイティブ連携を加速するPigeon活用法

ma12441469 masaki futami

概要

セッションの概要を記載してください。

このセッションでは、Pigeonを活用してDartとネイティブプラットフォーム(iOS/Android)間の連携を加速する方法について詳しく解説します。
Pigeonは、Flutterアプリケーションとネイティブコードの間の通信を簡素化し、開発効率を向上させるツールです。
以下のポイントに焦点を当てて説明します。

  1. Pigeonの基本概念
  2. Pigeon導入方法
    • 導入手順や初期設定のガイド
    • 必要な依存関係や準備すべき環境
  3. 使用例
    • 実際にPigeonを使用して、Flutterアプリケーションとネイティブコード間のデータ交換や機能呼び出しを実現する具体例を紹介します。

想定視聴者

誰に向けたセッションなのかを記載してください。
・MethodChannelで四苦八苦している方
・Pigeonに興味がある方

1
LTセッション

200人が参加する弓道大会を支えたアプリ開発と運用

BowyerApp Takaya Shono

概要

9月7日に「弓道の日」記念交流射会が開催されました。全国各地から弓道家が集まり、200人が参加する大規模な大会となりました。
通常、弓道大会では紙で記録が張り出されますが、今大会ではアプリを用いてリアルタイムに記録を共有しました。

今回のアプリでは、リアルタイム記録の閲覧、参加者間のプロフィール交換機能(QRコード使用)、大会前後の通知機能を搭載。大会はボランティア運営でコストゼロが求められ、私はFlutter、Firebase、Google Spreadsheetを活用して、すべてのシステムを一人で構築・運用しました。

大会運営はボランティアで行われたため、コストゼロでの運用が求められました。
エンジニアは私一人だったため、これらのシステムを全て1人で構築・運用しました。
このノウハウは、他の大会やイベントでも活用できると考えており、今後、同様のイベントでアプリを導入したいという方々に役立てば嬉しいです。

このセッションで得られること

  • FirebaseとGoogle Spreadsheetを用いたリアルタイムデータ同期システムの構築方法
  • QRコードとFirebaseを用いたプロフィール交換システムの構築方法
  • その他、リアルタイムイベントを実施するためのノウハウ

想定視聴者

これから特定ドメインのイベントアプリの開発を行いたい方

LTセッション

僕のstate restorationアカデミア

LucasGoldner 金ちゃん

概要

ユーザーとして、この場面を想像してみてください:アプリAで長文を入力中、何度か他のアプリBに切り替えて使用し、アプリAに戻ったところ、突然すべてのデータが消えてしまいました。OSがアプリAを終了させてしまったのです!それはあまり良くないuxですね。開発者として、どうやってユーザーを挙動不審な行動に対して守ることができますか?実は、state restorationという簡単な解決方法があります。状態管理についてよく話しますが、state restorationのことを忘れることがあります。最新の個人開発アプリ「Japanana」ではこの機能が必要でしたので、実際の例を使ってその実装方法をこの発表で紹介したいと思います。

想定視聴者

• State restorationについて理解したい開発者
• State restorationを実装したく、その方法を学びたい開発者
• State restorationを実装した後、テスト方法を学びたい開発者

LTセッション

FlutterプロジェクトでのOpenAPI運用

shintaku_square 新宅 千晶

概要

APIの仕様の管理は、効率的に開発を進める上で大切な要素の1つですよね。
本セッションではOpenAPIの運用について焦点を当て、リポジトリの配置やディレクトリ構成、どのようにDartコード生成を行っているか、そのために使用しているテンプレートツールなど弊社のプラクティスを紹介します。

想定視聴者

  • プロジェクトへOpenAPIの導入を検討している方
  • FlutterプロジェクトにおいてAPIとの連携を効率化したいと考えている方
  • OpenAPIを使ってコード生成を行うことを検討している方
LTセッション

デコンパイルから発見!shared_preferencesに隠された秘密の文字列と真実

chigichan24 chigichan24

概要

Androidアプリの難読化されたコードを見るのが趣味の筆者。ある日、Flutter製のAndroidアプリの多くには、共通のBase64エンコードされている文字列が使用されていることを発見しました。この文字列は、flutter/packagesの中の特定のデータ型に関連する重要な手がかりを含んでいることが判明。詳細はGitHubの公開アーカイブされたリポジトリでの調査により、これらの文字列がどのような目的で使用されていたのかが筆者の中で明らかになりました。

この発見は、特に、AndroidのSharedPreferencesの実装に対するFlutterのユニークなアプローチとマルチプラットフォームに対応するフレームワークとしての解決策の苦悩が垣間見えます。プロダクトの実装時には気にする必要のない部分、Flutterの1st partyライブラリの実装を深堀りしていきます。

<トークのアジェンダ>

  • アプリのデコンパイルについて
  • flutter/packageのshared_preferencesについて
  • 不自然に共通している3つの秘密の文字列
  • 秘密の文字列の目的とその背景

想定視聴者

  • flutter の 1st partyのライブラリの実装に興味がある人
  • shared_preferencesに隠された真実に興味がある人
2