Flutter
こんにちは。エキサイトでアプリエンジニアをしている岡島です。 今回は、画像圧縮を行うライブラリであるflutter_image_compressの対応画像形式について調べたのでまとめていこうと思います。 環境 flutter_image_compress: 2.4.0 画像圧縮方法 flutter_ima…
こんにちは、エキサイトでアプリエンジニアをしている岡島です。エキサイトホールディングス Advent Calendar 2024の21日目を担当させていただきます。 今回はgo_routerを触ってみたので、go_routerについて共有していこうと思います。 環境 go_routerの特徴…
こんにちは、エキサイトでアプリエンジニアをしている岡島です。 今回はDartを用いて、定期的に関数を実行したい時にどうすればいいか、Timerを用いた実装を紹介していきます。 はじめに Timerの基本的な使い方 一度だけ実行する場合 一定間隔ごとに実行する…
こんにちは、エキサイトでアプリアンジニアをしている岡島です。 今回は、BuiltListを使う機会があったので、調べたことについて共有したいと思います。 BuiltListとBuilt Collectionについて Dartで注意が必要な参照渡し BuiltListで参照渡しの問題を防ぐ B…
こんにちは。エキサイトの岡島です。今回はカスケード記法(Cascade notation)についてご紹介していこうと思います。 業務中に誤ってカスケード記法を用いてmapの操作を行なっており、期待した動きにならなかったので自戒の念をこめてこの記事を書いています…
こんにちは!エキサイトでアプリエンジニアをしている岡島です。 今回は、FlutterでiOSとAndroidで異なるウィジェットを扱いたいときに使用したPlatformWidgetについて学んだことを共有していこうと思います。 PlatformWidgetライブラリとは PlatformWidget…
はじめに 2024年10月の1ヶ月間エキサイト株式会社のインターン「Booost!!! Excite Internship 2024」でFlutter開発に携わらせていただいた野村です。今回はこのインターンを通して学んだことや感じたことを紹介させていただきたいと思います。 自己紹介 私は…
こんにちは、エキサイト株式会社でアプリエンジニアをしている岡島です。今回はListViewを入れ子にする場合や、他のウィジェットと組み合わせる際に、注意すべきshrinkWrapプロパティの使用とSliversウィジェットについて取り上げたいと思います。 shrinkWra…
こんにちは、エキサイトでアプリエンジニアをしている岡島です。 今回は、ListViewなどスクロールができるウィジェットのphysicsついてまとめていこうと思います。 Scrollableなウィジェット physicsについて AlwaysScrollableScrollPhysics BouncingScrollP…
こんにちはエキサイトでアプリエンジニアをしている岡島です。今回はRadioListTileを用いた時、ラジオボタンとテキストの間隔を調整したい時にどうすればいいかについて共有しようと思います。日本語での記事が無かったので、皆様のお役に立てれば幸いです。…
こんにちは。エキサイト株式会社でアプリエンジニアをしている岡島です。 今回はDartのenumとsealedクラスについて勉強したことをまとめていこうと思います。 環境 enumのパターンマッチング 基本的な使用例 enumの網羅性チェック sealedクラスのパターンマ…
こんにちは。エキサイト株式会社でエンジニアをしている岡島です。 今回は、pubspec.yamlでのパッケージの管理について、調べたことを共有していこうと思います。 pubspec.yamlでのバージョン指定方法 バージョン指定なし 指定されたバージョン バージョンの…
こんにちは。エキサイト株式会社 モバイルアプリエンジニアの克です。 今回は、FlutterにおけるdioのInterceptorを利用したAPI通信時の共通処理の実装についてお話しします。 各種バージョン Flutter: 3.22.2 dio: 5.4.3+1 Interceptor dioはFlutterでHTTP通…
こんにちは。エキサイト株式会社 モバイルアプリエンジニアの克です。 今回は、FlutterにおいてUIのイベントをデバウンスする手法についてです。 デバウンスについて デバウンスとは、短時間に複数回のイベントが発生することを防ぐための手法です。 例えば…
エキサイト株式会社の@mthiroshiです。 エキサイトHD主催の社内テックカンファレンス「Excite × iXIT TechCon 2024」にて、登壇発表をしました。 「Excite × iXIT TechCon 2024」の詳細については、下記記事をご参照ください。 tech.excite.co.jp iOS / Andr…
エキサイト株式会社の@mthiroshiです。 エキサイトホールディングス Advent Calendar 2023の13日目を担当します。 Flutter で画面スリープを無効にする(画面を常時点灯にする)wakelock_plus パッケージについて紹介します。 wakelock_plus とは wakelock_p…
エキサイト株式会社の@mthiroshiです。 エキサイトホールディングス Advent Calendar 2023の8日目を担当します。 エキサイトでは、 iOS / Android ネイティブアプリの Flutter によるリビルドを行ってきました。 ローカル DB でデータを管理するアプリの場合…
エキサイト株式会社の@mthiroshiです。 FlutterKaigi 2023に参加してきましたので、その内容をレポートします。 FlutterKaigi 2023の概要 聴講したセッション 基調講演「Flutter's 8 years journey」 「Flutter アプリにおけるテスト戦略の見直しと自動テス…
こんにちは。エキサイト株式会社 モバイルアプリエンジニアの克です。 このたび、FlutterKaigi 2023に登壇しました。 fortee.jp speakerdeck.com 今回は、当日お話しできなかった内容をいくつか補足したいと思います。 画像の保存場所 発表では画像の保存場…
エキサイト株式会社の@mthiroshiです。 Flutterのアプリ内課金の実装には、 in_app_purchase パッケージを使います。 Androidで実装する際に、少し躓いた問題があったのでご紹介します。 動作環境は、下記のpubspec.ymlの内容です。 dependencies: in_app_pu…
こんにちは。エキサイト株式会社 Androidエンジニアの克です。 この度はFlutterKaigi 2023に登壇させていただくことになりました。 登壇内容 2023年11月10日 (金) 16:30 ~ 17:10(40分) fortee.jp 内容は漫画ビューアのモバイルアプリをFlutterで開発する方…
エキサイト株式会社の@mthiroshiです。 FlutterでRawAutocompleteを使って、テキストの入力に応じて検索候補のワードを表示する、検索フォームを実装してみました。検索候補ワードは、APIから取得します。 下記が公式ドキュメントです。公式ドキュメントには…
エキサイトの武藤です。 FlutterにおけるWidgetのフェードイン・アウトアニメーションUIについて簡単に紹介します。 Visibilityの表示・非表示の場合 AnimatedSwitcherを使ったフェードイン・アウトのアニメーションUI FadeTransitionを使ったフェードイン・…
エキサイト株式会社の武藤です。 FlutterでViewを構築するときに、Text Widgetのサイズが欲しいときがあります。今回は、Text WidgetのWidth、Heightの取得について紹介します。 また、求めたサイズを使ってアニメーションをつけたUIのサンプルを紹介します…
エキサイトの武藤です。 Flutterで多言語対応をする際、基本的にはWidget内でBuildContextからAppLocalizationsを呼び出して利用します。 しかし、複雑なロジックが必要な表示テキストの場合、Viewでそのロジックを書いてしまうとViewのコードが肥大化してし…
エキサイトの武藤です。 FlutterのRippleエフェクトの挙動について紹介します。 Rippleの種類 ListViewのRipple表示 ListTile, 独自レイアウトの場合 Imageの上にTextを重ねたレイアウト まとめ 採用情報 参考記事 Rippleの種類 Button Widgetを例にRippleを…
エキサイトの武藤です。 Flutter 開発を通して、freezed でのJSONの扱いに慣れてきました。 今回は freezed, json_annotation パッケージの基本的な使い方やTIPSをまとめていきます。 @JsonKey アノテーション name プロパティー defalutValue プロパティー …
エキサイト株式会社でモバイルアプリ開発に携わっている奥田です。 今回はGoRouterを使用する際に画面遷移時に値を渡す実装方法について記述します。 GoRouterの紹介 Navigator 2.0におけるFlutterのRoutingライブラリです。 pub.dev 画面定義 class App ext…
エキサイト株式会社でモバイルアプリ開発に携わっている奥田です。 今回はFlutter3.0.5へのアップデート作業の際にGithubActionsでiOSがビルドできない問題が発生しました。 その問題の解決策について記述していきます。 問題点 Flutter3.0.5へのアップデー…
エキサイト株式会社でモバイルアプリ開発に携わっている奥田です。 とあるAndroidアプリのFlutterへのリプレイス作業が終了し、リリースした際にクラッシュ報告が相次ぎました。今回はクラッシュの原因、対応した方法について記事にしていきます。 問題点 弊…