タグ

Programmingに関するlarkerのブックマーク (610)

  • FlutterのBoxFitとAlignmentの組み合わせによる挙動

    はじめに Flutterの画像には与えられた領域にどう表示するかを決めるパラメータとして fit alignment があります。この設定をいじるとレイアウトが変更されるのですが、挙動に少し迷う部分があるのでここにまとめます。 使う画像は正方形です。これを SizedBox によるいろんな形の入れ物に入れます。 ちなみに BoxFit にはいくつか種類がありますがこの記事では BoxFit.fitWidth しか扱いません。この記事のテーマの「縦方向か横方向の配置の自由度が生じたときにどう処理されるか」という点は BoxFit.fitWidth のひとつだけで説明が付くという判断をしました。 使うコードはこちら home: Scaffold( body: Center( child: Container( decoration: const BoxDecoration( color: Co

    FlutterのBoxFitとAlignmentの組み合わせによる挙動
  • Flutter ローカルの画像を表示させサイズを指定 - Qiita

    ローカルに画像を用意 Flutter プロジェクトの中に、assetsフォルダを作りその中にimagesフォルダを作ります。 assets/images/unnamed.pngというパスになります。 この画像を表示させます。 pubspec.yamlに画像の置き場所を設定する デフォルトでは下記のようにコメントアウトされているかと思います。 flutter: ...(省略)... # To add assets to your application, add an assets section, like this: # assets: # - images/a_dot_burr.jpeg # - images/a_dot_ham.jpeg

    Flutter ローカルの画像を表示させサイズを指定 - Qiita
  • Flutter FutureBuilderでリロードしたい - stone's throw

    無性にリロードがしたい。人間にはそういう時期だってある。 FutureBuilderは完了するまで別のウィジェットを表示できる api.flutter.dev FutureBuilderは、HTTPリクエストの結果を表示する時に、リクエストが完了するまでインジケーターを表示したいケースに使える。 基的な使い方は以下の通り。 FutureBuilder<String>( future: _futureObj, builder: (BuildContext context, AsyncSnapshot<String> snapshot) { if(snapshot.hasData) { return Text(snapshot.data); } else if (snapshot.hasError) { return Text("Something wrong"); } else { ret

    Flutter FutureBuilderでリロードしたい - stone's throw
  • 【Flutter】StateにFutureを持たせた時のreload方法

    StateのFutureをreloadする(失敗例) build内でFutureBuilderを使い、そこで使用するデータとしてFuture<List<String>>みたいな物をStatefulWidgetのStateとして保持していました。 内容は変えていますが、以下のようなソースコードです。 この状況で、FloatingActionButtonボタンを押すと、55行目で以下のエラーが発生します。 FlutterError (setState() callback argument returned a Future. The setState() method on _ListViewWidgetState#3ce67 was called with a closure or method that returned a Future. Maybe it is marked as “

    【Flutter】StateにFutureを持たせた時のreload方法
  • Flutterでのextension(拡張関数)の便利な使い方

    はじめに今回は、Flutterの拡張関数(extension)のについて説明していきたいと思います。 拡張関数を使いこなすことができれば、コードの書き方の幅がかなり広がりますよ! 拡張関数extensionとは拡張関数とは・・・あるクラスにメソッドを追加できるものです。 メソッドを追加できるということは、プロジェクト内でよく使うメソッドなどをあらかじめextensionで作っておくことで、あらゆる処理を書くのが楽になります。 以下で、実際に僕がよく使っているextensionの具体例を紹介したいと思います。 extensionを使ってcontextにメソッドを追加するcontextを使って、〇〇する。というケースはかなり多いと思います。 例えば以下のような、 Theme.of(context)... MediaQuery.of(context)... などです。 contextから情報を引

    Flutterでのextension(拡張関数)の便利な使い方
  • url_launcherのLinkウィジェットを使ってFlutter Webで実際のリンクを表示する

    はじめに 最近url_launcherにLinkというウィジェットがあることを知ったので、その共有記事です。 結論からいうとFlutter Webを使う場合はこれを使うと良さそうです。 実践 ウィジェットの説明 A widget that renders a real link on the web, and uses WebViews in native platforms to open links. 「ウェブ上の実際のリンクをレンダリングし、ネイティブプラットフォームでWebViewsを使用してリンクを開くウィジェット。」とのことです👀 使い方 FlutterでURLを開くときはボタンを用意して、onPressedでlaunchURLを呼ぶことが多いと思います。今回はIconButtonでURLを開くケースをLinkウィジェットを使って書き換えてみます。 Linkウィジェットのur

    url_launcherのLinkウィジェットを使ってFlutter Webで実際のリンクを表示する
  • Flutterで画像をバックグラウンドに表示する

    環境 macOS Big Sur Version 11.3.1 Flutter 2.2.0 Dart 2.13.0 画像をバックグラウンドに表示する 画像を置くフォルダを用意 まず、利用したい画像を用意してプロジェクト内のフォルダに入れます。 ※ネット上にある画像を使うパターンもできますが、今回はあらかじめ用意した画像を読み込む形にします。 単純にこちらのサンプルのほうが少ないなーという主観的観測結果によるものです😎 プロジェクト直下にimagesフォルダをつくります。(フォルダの名前は任意です。) androidでエラーになってますが気にしないでいただければ・・・w 次に作成したフォルダにぱくたそ様から拾ってきたいい感じフリー画像を置きます。 ファイル名はbackground-sample.jpgとしました。 pubspec.yamlに設定を追加する Flutterプロジェクト内に用

    Flutterで画像をバックグラウンドに表示する
  • [Flutter]画像をアイコンとして表示するには?

    方法 画像をアイコンとして表示するには、ImageIconウェジェットを使います。 具体的には、ImageIconを配置し、引数にAssetImageやNetworkImageなどを指定します。 ImageIcon( AssetImage('/*Your Image*/'), ) これで画像をアイコンとして表示することが出来ます。 以下は、使用例です。 @override Widget build(BuildContext context) { return Scaffold( body: Center( child: ImageIcon( AssetImage('asset/images/risu.png'), color: Colors.blue, size: 200, ), ), ); }

    [Flutter]画像をアイコンとして表示するには?
  • 「class._()」でprivate constructorを定義する

    class Init { Init._(); static final instance = Init._(); Future initialize() async { await Future.delayed(const Duration(seconds: 3)); } } 結論 Init._()はprivate constructor 。 解説 Dartにアクセス修飾子(public/protected/private)はありません。そのため、他言語のようにデフォルトコンストラクタにprivate修飾子を施す処理は実装できないため、_ (通称private & 名前必須だけど、処理に関係ない)を名前付きコンストラクタの名前にしている。 private constructorとは? 1度だけインスタンスされる特殊なコンストラクタです。 インスタンスを多量に生成するとパフォーマンス低下の原

    「class._()」でprivate constructorを定義する
  • iOSでflutter_secure_storageに保存したものはアンインストールしても消えない

    タイトルの通り。 調べてみると情報は出てくるのだが、思いあたる節がないと気づかない。 Androidと挙動が異なる点も注意が必要。 書いていること Androidの挙動に近づける方法。 iOS側に合わせる方法は今のところない認識。 flutter_secure_storageとは Infoには「セキュアなストレージにデータを保存するFluterプラグイン」と書かれており、 良しなに暗号化もしてくれるパッケージ。 すごく便利なパッケージなのだが、今回落とし穴に引っかかった。 (念の為バージョンも記載すると、「6.0.0」ときに直面) iOSでflutter_secure_storageに保存したものはアンインストールしても消えない 消えない。 検索してみるとツイッターなど出てくる。 なぜ消えないのかというと、 iOSにおいては内部でKeychainを使っているので消えないという話らしい。 「

    iOSでflutter_secure_storageに保存したものはアンインストールしても消えない
    larker
    larker 2023/12/25
    flutter_secure_storage
  • 【Flutter】Keychainアクセスのオプションと、iOSネイティブ連携してる場合のハマりポイント

    flutter_secure_storage 前提として、Flutter側はflutter_secure_storageを使用しています。 FlutterにおけるiOSのKeychainアクセスにはこのパッケージが有名だと思います。 パッケージの実装の概要としては、MethodChannel[1]でプラットフォーム側のセキュア情報にアクセスします。 iOSのKeychainアクセスにおけるオプション flutter_secure_storageではKeychainAccessibilityというオプションが用意されており、端末のアンロック状態やパスコード設定有無によってアクセス制限の堅さ分けがされています。 属性 概要 デバイス制約

    【Flutter】Keychainアクセスのオプションと、iOSネイティブ連携してる場合のハマりポイント
    larker
    larker 2023/12/25
    flutter_secure_storage
  • addPostFrameCallback methodはどんな時に使うのか?

    Overview このフレームの終わりにコールバックをスケジュールします。 提供されたコールバックは、フレームの直後、永続フレーム コールバックの直後 (メインのレンダリング パイプラインがフラッシュされたとき) に実行されます。 このメソッドは新しいフレームを要求しません。 フレームがすでに進行中で、ポストフレーム コールバックの実行がまだ開始されていない場合、登録されたコールバックは現在のフレームの終わりに実行されます。 それ以外の場合、登録されたコールバックは次のフレームの後に実行されます (実行される可能性がある場合はいつでも)。 コールバックは追加された順序で実行されます。 ポストフレーム コールバックは登録解除できません。 これらは 1 回だけ呼び出されます。 以下も参照してください。 scheduleFrameCallback: 次のフレームの開始のためのコールバックを登録し

    addPostFrameCallback methodはどんな時に使うのか?
  • Flutterでアプリ開発・ライフサイクルについて | ギャップロ

    システム開発部のTです。 今回、Flutterでアプリを開発するうえで、覚えておきたいライフサイクルについて書いていきたいと思います。 個人的な所感としては、AndroidやiOSと比較してちょっと複雑かと思いました。 それでは、以降見ていきましょう! 概要 Flutterのライフサイクルは主に3つの種類があります。 大まかに以下のようになるかと思います。 アプリケーションのライフサイクルStatefulWidget(画面)のライフサイクル画面遷移時のライフサイクル 上記でも分かる通り、StatefulWidgetのライフサイクルだけだと、画面遷移時のハンドリングができないです。 以降にて、上記のライフサイクルの詳細な動きを書いていきたいと思います。 アプリケーションのライフサイクル アプリケーションのライフサイクルの取得には、以下のようにMixinsのWidgetsBindingObse

    Flutterでアプリ開発・ライフサイクルについて | ギャップロ
  • リファクタリングをする際にソースコードの設計からはじめてはいけない - MonotaRO Tech Blog

    どうも、レコメンド商品のシステム開発をしている野川と申します。 私は、2021年にモノタロウに新卒入社し、2022年5月からレコメンド商品の開発に関わり始めました。 モノタロウのレコメンド商品は、下の図の①~④の流れでクライアントサイドで表示しています。大部分の処理はJavaScriptで構成しており、UIもそのHTML部分をjQuery(JavaScript)で作成しています。 図:レコメンド商品表の流れ 入社当時私は、ソフトウェアエンジニアとして、「可読性の低いコードは駆逐するべきだ」「読みやすいコードだけが正義である」「理解しやすいシステムだけが皆を幸せにする」と心の底から考えていました。加えて、「なぜ先輩たちは可読性の低いコードを放置して平気なのか?」と疑問を持つこともしばしばありました。 レコメンド商品周りのコードはまさに可読性の低いコードベースとなっていたため、当事者となった私

    リファクタリングをする際にソースコードの設計からはじめてはいけない - MonotaRO Tech Blog
  • Flutter でWidgetから画像を生成してロゴ画像を追加する - Qiita

    概要 LINE友達登録のQRコードや、○○payの送金先などアプリ内で作成したプロフィールや画像、ゲームのスコア、QRコードなどを共有したい場面が出てくると思います。 そういった場面で使用できる方法を紹介したいと思います。 Widgetから画像を生成するだけなら簡単で、「Widgetから画像を生成する」を見るとほぼほぼ実装できると思います。 実装 ここからFlutter での実装を説明していきます。 1. Widgetから画像を生成する ウィジェットから画像を生成するには、画像として書き出したいウィジェットをRepaintBoundaryで囲み、RepaintBoundaryのKeyからRenderObjectを取得することで、画像を生成することができます。 final _globalKey = GlobalKey(); Widget build(BuildContext context

    Flutter でWidgetから画像を生成してロゴ画像を追加する - Qiita
    larker
    larker 2023/10/18
    ui.Image に変換
  • [Flutter] CustomPaintという選択肢 | RE:ENGINES

    はじめに Flutterで用意されているWidgetや、パッケージを探してみても望む表現ができない場合は、 CustomPaintという選択肢が出てきます。iOSやAndroidなどでもグラフや複雑な図形を描画するのにCanvasをなどを用いて低レベルなAPIを使ったグラフィック操作を使用しますが、今回はFlutterでやってみます。 CustomPaintを用いて、できることは以下になります。 drawLine(線を描画) drawRect(四角形を描画) drawCircle(円を描画) drawArc(アーチを描画) drawPath(パスを用いて図形を描画) drawImage(ビットマップ画像を描画) drawParagraph(テキストを描画) 今回の記事では、drawLine、drawRect、drawCircle、drawPathを使ってみたいと思います。 drawLine

    [Flutter] CustomPaintという選択肢 | RE:ENGINES
  • 【Flutter】カスタマイズ描画(CustomPaint)のCanvas - Qiita

    カスタマイズ描画について 前編 Paint編 Path編 ※記事は下記のZennにまとめました。 キャンバス変換 キャンバス変換関数は下記5つある。 void skew(double sx, double sy) void rotate(double radians) void scale(double sx, [double sy]) void translate(double dx, double dy) void transform(Float64List matrix4) translate(double dx, double dy) 並行移動 scale(double sx, [double sy]) スケール rotate(double radians) 回転する skew(double sx, double sy) 斜め切り替え transform(Float64List

    【Flutter】カスタマイズ描画(CustomPaint)のCanvas - Qiita
  • image_pickerで取ってきた画像をCustomPaintで表示する - Qiita

    はじめに image_pickerを使えば簡単に画像を取ってこれるのですが、 それをCustomPaintを使って表示する方法でとても手こずってしまったので備忘録を兼ねて記して置こうと思います。 CustomPaintを使えると、画像の上に描画もできるので画像の編集とかにも使えそうですね! 使うライブラリ image_picker ソースコード全体 import 'dart:ui' as ui; import 'package:flutter/material.dart'; import 'package:image_picker/image_picker.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { // This widget is the root of your appli

    image_pickerで取ってきた画像をCustomPaintで表示する - Qiita
  • 設計・ソフトウェアアーキテクチャを学べるGitHubリポジトリ 16選

    はじめに 今回の記事では、設計やソフトウェアアーキテクチャを学べるGitHubリポジトリを16個紹介する。 対象とする読者 設計やソフトウェアアーキテクチャに興味関心があるエンジニア GitHubエンジニアリングの情報収集に活用したいエンジニア タイトルで気になった人 Architectural Patterns システムの基的な構成を理解するためのパターンやテンプレートを提供している。これらのパターンを学ぶことで、システムの構造やコンポーネントの関連性、相互作用を理解できる。これが開発者にシステムをより効率的かつ効果的に設計・実装する能力をもたらす。 Design Patterns for Humans 設計パターンを人間が理解しやすい形で説明している。デザインパターンは特定の問題に対して再利用可能なソリューションを提供する。これによって、開発者はより効率的にコードを記述でき、メンテ

    設計・ソフトウェアアーキテクチャを学べるGitHubリポジトリ 16選
  • Flutterで始めるアプリ開発

    このページのゴール Riverpodの概要と使い方を知る Riverpodを使いユーザー情報を管理する チャットアプリ全体像 機能一覧 ✨ メールアドレス・パスワードでログインできる ✨ ログアウトできる ✨ チャットの投稿一覧を表示できる ✨ チャットに投稿できる ✨ チャットの投稿を削除できる イメージ図 ❗️ 注意事項 ❗️ プロジェクト・雛形の作成が終わっていない場合は Firebaseを使ったアプリ概要のページを確認しましょう。 状態管理 状態管理とは まずは状態管理とは何であるかについて理解していきましょう。 Widgetとはでは、 FlutterはWidgetをツリー状に組み合わせUIを実現することを紹介しましたね。 そして、状態を持ったWidgetでは、 データを元にUIを作る仕組みのことを状態を持つと呼ぶことを紹介しましたね。 Widgetをツリー状に組み合わせUIを実現

    Flutterで始めるアプリ開発