【Flutter/Dart】定期的に関数を呼び出す方法:Timerを用いた実装

こんにちは、エキサイトでアプリエンジニアをしている岡島です。 今回はDartを用いて、定期的に関数を実行したい時にどうすればいいか、Timerを用いた実装を紹介していきます。 はじめに Timerの基本的な使い方 一度だけ実行する場合 一定間隔ごとに実行する…

【Dart/Flutter】ListとBuiltListの違いとBuilt Collectionについて

こんにちは、エキサイトでアプリアンジニアをしている岡島です。 今回は、BuiltListを使う機会があったので、調べたことについて共有したいと思います。 BuiltListとBuilt Collectionについて Dartで注意が必要な参照渡し BuiltListで参照渡しの問題を防ぐ B…

【Dart】カスケード記法(..)についてと注意が必要なmapの操作

こんにちは。エキサイトの岡島です。今回はカスケード記法(Cascade notation)についてご紹介していこうと思います。 業務中に誤ってカスケード記法を用いてmapの操作を行なっており、期待した動きにならなかったので自戒の念をこめてこの記事を書いています…

【Flutter】PlatformWigetを用いて、iOSとAndroidでwidgetを使い分ける

こんにちは!エキサイトでアプリエンジニアをしている岡島です。 今回は、FlutterでiOSとAndroidで異なるウィジェットを扱いたいときに使用したPlatformWidgetについて学んだことを共有していこうと思います。 PlatformWidgetライブラリとは PlatformWidget…

【Flutter】ListViewではshrinkWrap:trueを使うよりもSliversウィジェットを使うべき!?

こんにちは、エキサイト株式会社でアプリエンジニアをしている岡島です。今回はListViewを入れ子にする場合や、他のウィジェットと組み合わせる際に、注意すべきshrinkWrapプロパティの使用とSliversウィジェットについて取り上げたいと思います。 shrinkWra…

【Flutter】スクロール挙動をカスタマイズするphysicsについて

こんにちは、エキサイトでアプリエンジニアをしている岡島です。 今回は、ListViewなどスクロールができるウィジェットのphysicsついてまとめていこうと思います。 Scrollableなウィジェット physicsについて AlwaysScrollableScrollPhysics BouncingScrollP…

【Flutter】RadioListTileのラジオボタンとテキストの間隔を調整する

こんにちはエキサイトでアプリエンジニアをしている岡島です。今回はRadioListTileを用いた時、ラジオボタンとテキストの間隔を調整したい時にどうすればいいかについて共有しようと思います。日本語での記事が無かったので、皆様のお役に立てれば幸いです。…

【Flutter/Dart】sealedクラスを用いて、SNSフィード画面のような複数の型を持つリストの表現する

こんにちは、エキサイト株式会社でアプリエンジニアをしている岡島です。今回はsealedクラスを用いて複数の型を持つリストを表現する方法について共有したいと思います。 複数の型を持つリストの表現 実装例 sealedクラスを用いた型の定義 投稿、広告、おす…

【Dart】enumとsealedクラスのパターンマッチングについて

こんにちは。エキサイト株式会社でアプリエンジニアをしている岡島です。 今回はDartのenumとsealedクラスについて勉強したことをまとめていこうと思います。 環境 enumのパターンマッチング 基本的な使用例 enumの網羅性チェック sealedクラスのパターンマ…

【Flutter】pubspec.yamlでのライブラリバージョン指定とセマンティックバージョニングについて

こんにちは。エキサイト株式会社でエンジニアをしている岡島です。 今回は、pubspec.yamlでのパッケージの管理について、調べたことを共有していこうと思います。 pubspec.yamlでのバージョン指定方法 バージョン指定なし 指定されたバージョン バージョンの…

新卒がアプリバグ出し会に取り組み、アプリのクラッシュ率を改善した話

こんにちは!エキサイトでアプリエンジニアをしている岡島です。今回はアプリ開発に携わるようになり、アプリクラッシュ率の改善につながった「バグ出し会」の取り組みについてお話しします。 バグ出し会とは? なぜバグ出し会を始めたのか? クラッシュ率の…

【新卒研修体験談】社内ツールの実運用で見えてきた課題と反省点

こんにちは、エキサイト株式会社でエンジニアをしている2024年度新卒の岡島です。 今回は、新卒研修プロジェクトで開発した社内ツールの実運用が始まったので、このプロジェクトを振り返り見えてきた課題と反省点を共有したいと思います。 はじめに 社内ツー…

Flutter 3.22アップデートで起きたビルドエラーの解決方法 RangeError (offset): Invalid value: Not in inclusive range

こんにちは。エキサイト株式会社でアプリエンジニアをしている岡島です。Flutter SDKのバージョンアップをする際、iOS・Androidともにビルドができなくなりました。今回はなぜビルドができなくなってしまったのか、そのエラーの原因と解決方法について共有し…

【Flutter】PopScopeを理解する

はじめに こんにちは。エキサイト株式会社でアプリエンジニアをしている岡島です。 今回は、PopScopeについて勉強したことをまとめていこうと思います。 はじめに バージョン PopScopeとは 基本的な使い方 まとめ 参考記事 バージョン Flutter: 3.22.2 PopSc…

【Flutter/Dart】enum, enhanced enumsについてとenumの要素→文字列に変換する方法

はじめに こんにちは。エキサイト株式会社でエンジニアをしている新卒の岡島です。 普段業務ではFlutterを用いたアプリ開発を行っています。 今回は、業務中にenumについて学んだことがあるので、勉強したことも含めて共有していきたいと思います。 私は、列…

【Dart】Nullの扱い方について

こんにちは。エキサイト株式会社でエンジニアをしている新卒の岡島です。 普段業務ではFlutterを用いたアプリ開発を行っています。 今回は、業務中にnullの扱いについて悩む場面があったので、Dartのドキュメントを読んで良いとされるnullの扱い方をみていこ…

【アプリ開発】データレイヤにおけるリポジトリ層とデータソース層について

こんにちは。エキサイト株式会社でエンジニアをしている新卒の岡島と申します。 普段業務ではFlutterを用いたアプリ開発を行っています。 今回は、既存APIからリビルド後のAPIへの繋ぎ込みを行った際に、アーキテクチャの重要性を痛感したので、アーキテクチ…

【Android】内部アプリ共有と、URLからインストールするための設定方法について

はじめに エキサイト株式会社で内定者アルバイトをしている岡島です。 エキサイトホールディングス 2023 Advent Calendar シリーズ2の15日目を担当させていただきます。 今回はアプリ開発時に内部アプリ共有を試したので、 内部アプリ共有と詰まったことにつ…

【Flutter】Freezedで階層構造のJSONを扱う時ためにやったこと

エキサイトで内定者アルバイトをしている岡島です! 今回はFreezedパッケージを使っていて、階層(入れ子)構造のJSONデータを扱う時につまづいたので解決した対処法を共有します。 Freezedについて 階層(入れ子)構造になっている JSONの扱い方 まとめ 参考…