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へのリプレイス作業が終了し、リリースした際にクラッシュ報告が相次ぎました。今回はクラッシュの原因、対応した方法について記事にしていきます。 問題点 弊…
エキサイト株式会社の奥田です。 今回は下記に掲載しているライブラリin_app_purchaseを使用した際に購入アイテムが0件の場合にハンドリングができなかった問題の解消方法について記載していきます。 pub.dev 問題点 in_app_purchaseを使用している際に購入…
はじめに 現状まだまだネイティブからFlutterへの移行の途中であり、最初期の構成としてはViewModelを定義してViewModelをStateNotifierProviderで状態管理している変数をView側に通知するようにしていたり、View側のタップ処理を受け付けるようにしていまし…
2.17以前のEnum enum Fruit { apple, orange, grape, } このようにメンバーを定義するだけで、Javaのように中に定数を入れるようにするためにはExtensionを定義してあげないといけませんでした extension FruitExt on Fruit { String get name { switch (thi…
これは エキサイトホールディングス Advent Calendar 2021 21日目の記事です。 エキサイト株式会社の高野です。今回はFlutterにおける別画面への値渡しや通知をする方法についてです。 実装 まずはじめに通知を受ける変数として以下を定義します。 final hog…
これは エキサイトホールディングス Advent Calendar 2021 18日目の記事です。 エキサイト株式会社の高野です。今回はFlutterにおけるネイティブ広告の話です。 はじめに 今回の記事はgoogle_mobile_ads(1.0.0)の話ですので他のライブラリを使っていたり、バ…
はじめに 2021年度アドベントカレンダーの2日目の担当の高野です。メディア事業部のアプリではWebViewを使うことが多く、その備忘録として残します。 動作バージョン Flutter 2.5.1 Dart 2.14.0 webview_flutter 2.1.1 実装 今回はwebview_flutterを使用して…
エキサイト株式会社の高野です。 弊社では最近Flutterでテストを書き始めました。state_notifierとfreezedを用いたプロジェクトをどうやってテストしようか考えていた所Mockitoを見つけ、よさそうでしたので書いてみたコードの流れの紹介になります。 各バー…