パルカワ2

最近はFlutterをやっています

Flutter for Web で WebView を使う

native_webviewは、WebViewの機能をWebで提供するのは難しいのでWebには今の所対応していない。だが、対応していないプラットフォームでも自前で実装すれば一応動かせるようにはなっている。(というか0.28.0から動かせるようにした) // Webのときのみsetす…

native_webview の integration test

ライブラリのテストは、ほとんどの場合 unit testでいいと思うのだけど native_webviewはiOSのWKWebViewやAndroid の WebViewに依存しているのでunit testではテストが出来ない。 なので、native_webview は integration test (ほとんど Widget testだけど)…

VSCodeのlaunch.jsonからInteliJのrunConfigurationsを自動生成する

毎日のようにはてなスターのスパムがきます。こんにちは。 仕事で作っているアプリは、Flutterを使っておりかつFlavorがたくさんあってそれぞれのFlavorごとにrunConfigurationsを用意している。また今後Flavorは増える予定である。 同僚には、VSCodeを使っ…

TECH STAND #3 で「10XとFlutter」というタイトルで発表した

久しぶりの外部の勉強会で、しかもFlutterの話をするのは初なのでなかなか緊張した。登壇者にはFlutterの人たちはもちろんReact Nativeの猛者がたくさんいて、僕はReact Nativeのことを全く知らないので話を聞くだけでも面白かった。TECH STAND #3 クロスプ…

散歩と判断

コロナでリモートワークするようになってからまったくと言っていいほど家から出なくなった。 散歩するかな〜でも目的がないとやる気がな〜なんて言って全くしてなかったのだが、2020年もそろそろ終わるしグダグダ言ってやらないのダサいな〜と思ったのでいっ…

最近のnative_webview

FlutterでWebViewをがんばる その2 - パルカワ2github.com前にWebViewの話を書いて、native_webviewというライブラリを自作した話を書いた。 すでにプロダクションで利用していて色々やったけど、最近だとBasic認証がかかっててもアクセスできるようにしたり…

finickyを使い始めた

こういうツイートをした。会社用のGoogleアカウントと家用のGoogleアカウントがあって、会社SlackからGCPのURLをクリックしたら家用のアカウントで開いてしまうみたいなのを1000万回はしてるんだけど、未だにどうすればいいのかわからない— ひさいち (@hisai…

enableFlutterDriverExtension() を使用するとキーボードがでなくなる

api.flutter.dev native_webviewのテストのために example/lib/main.dart で enableFlutterDriverExtension() を有効にしていたのだけど、example アプリをビルドしてみるとキーボードが出なかった。普通にアプリに組み込むとキーボードは出るのでなんで?と…

FlutterでWebViewをがんばる その2

github.com FlutterでWebViewをがんばる - パルカワ2 flutter_inappwebviewに関する知見 - パルカワ2 FlutterでWebViewを扱うために webview_flutter を使って、flutter_inappwebviewを使ってきたが、結局native_webviewというライブラリを自分で作り始めた…

自分の作業環境 2020

おうち大好きマンなので、3年前くらいに今の家に引っ越してから作業環境を整えている。 自宅で働くことが増えて整えてきてよかったと思っているので、現状を書き出しておく。10年後とかに見たら面白いのではないか。2030年……41歳……… ぬいぐるみ hobby.dengek…

コーヒーメーカー買った

今まで会社に行く前にコンビニに寄ってコーヒーを買って出社するというのがルーチンになっていたのだけど、新型コロナウイルス感染症の影響で自宅で働くようになってからコンビニまでコーヒーを買いに行くのがめんどくさくなってしまった。なので、家でコー…

Cirrus CI使い始めた

cirrus-ci.org 最近OSSでFlutterでWebViewを表示するプラグインを書いていて、AndroidエミュレータとiOSシミュレータを利用してそれぞれのプラットフォームでテスト(flutter drive)を動かしたいという欲求があった。 最初は、iOSの実装だけやっていたので使…

tmux 3.0a にする

tmux 2.8からアップデートでもするか〜と思ってした。 どうせ動かなくなるだろと思って雑にupgradeしたら動かなくなった。ガッハッハ -fg みたいなのが廃止されて、-styleになったらしい /Users/hisaichi5518/.tmux.conf:11: invalid option: pane-active-bo…

Bitriseでflutter driveを実行する

プロジェクトを作ってシミュレーターを開いて、flutter driveすればよい --- format_version: '8' default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git project_type: flutter trigger_map: - push_branch: "*" workflow: primary …

flutter_inappwebviewに関する知見

ほしい機能がなかったからwebview_flutterをやめて、flutter_inappwebviewを使うようにした。 flutter_inappwebviewは機能がモリモリでモリモリすぎるという印象だけど、自分でモリモリ作るよりはいいだろという感じ。ちなみにflutter_inappwebviewはflutter…

DartLintで独自のRuleを作って使いたい

Dartでlintといえば dartanalyzer だけど、custom lint rule に対応していない。 (dartanalyzerは中でdart-lang/linterを利用している) github.com なので、独自のlint ruleを動かす君を作る。 独自のコマンドゆえにIDE上のDart AnalyticsではLintエラーが表…

Dartのhttp packageでは物足りない部分を補う

http packageを使っている。 pub.dev まあ、便利なんだけどtimeoutとcookieが対応していない。またUserAgentは常に指定する必要がある。 なので、それらに対応するには別packageを使うか自分で頑張る他ない。 諸々対応しているHTTP Clientとしてdioがあるが…

Firestoreエミュレータで listDocuments + orderBy + pageTokenを使うと gRPC Error (2, null) が出る

Package google.firestore.v1 | Google Cloud FirestoreのRPC APIを使っていて、Firestoreエミュレータを使って開発している。以下のようにListDocumentsRequestで、orderByとpageTokenがある場合に「gRPC Error (2, null)」というエラーが返ってくる。エラ…

ラム肉を焼いた

この記事はつくりおきAdvent Calendar 2019の21日目の記事です。昨日は id:kazuhi_ra さんの 風邪おき(昼 / 夜) - #つくりおき でした。お大事に…。クリスマスだしニワトリをまるごと一羽焼こうって話をしていたんですが、ここならなんでもあるでしょと高を…

material/dialog.dart を読む

flutter/dialog.dart at master · flutter/flutter · GitHub Dialog の padding が固定 MediaQuery.of(context).viewInsets + const EdgeInsets.symmetric(horizontal: 40.0, vertical: 24.0) Material Designでは固定ではなさそう? https://material.io/co…

AlertDialogのボタン下のスペースが空いてしまう!

FlatButtonを使ってAlertDialogのアクションを表現したら、微妙にアクションの下スペースが広い。 debug printを表示するとわかりやすい。 AlertDialog( ..., actions: <Widget>[ FlatButton( child: const Text("OK"), onPressed: () => ok(context), ), ], ); Flat</widget>…

Flutter + Android Studioで Logcatタブが出ない

会社のPCでは出るけど、家のPCでは出ないのなんでって思ってたけど、設定してなかったみたい。 02:24 Frameworks Detected Android framework is detected. Configure Event Logにこういうのが出ているので、Configureを押したら設定できる。 このあたりも確…

get_it を使っていたけどやめた

get_it | Dart Package を使っていたがやめた。 // 登録さえすば GetIt.instance.registerSingleton<Logger>(Logger()); // どのクラスでもLoggerを参照できる class HogeBloc { final Logger logger = GetIt.instance.get<Logger>(); } 便利なんだけど次の問題があると思っ</logger></logger>…

Dart で簡単に data class を作りたい

Kotlinではdata classはこのように書ける。 data class User(val name: String, val age: Int) これは、 ただのクラスではなくて equals() / hashCode() / toString() / copy() が実装されるクラスになる。 なので次のコードはtrueが返る。 User(name: "hisa…

provider 3.2.0 にアップデートした

APIが4.0.0で変わるようで、builder を create/update に変えるだけで今の所良かった。直感的になって良い変更だなとおもう。 RFC Renaming the parameter ‘builder’ of providers · Issue #259 · rrousselGit/provider · GitHub ついでに4.0.0-devにするか…

より良いFlutterの画面遷移を考える

Flutterの画面遷移について考えたのでメモ。 現状このようにして遷移している。 Navigator.of(context).push(MaterialPageRoute( builder: (_) => HogeScreen(keyword: "..."), )); このやり方だと settings.name が設定されていないので、FirebaseAnalytics…

カリギュラを見た

妹が死んでキレた皇帝の話です。 顔の良い男たちが出ているからかお客さんのほとんどが女性だった…すごい… もっとめちゃくちゃな暴れん坊か?と思ってたけど、お笑い要素もあってちょっと意外だったんだけど、インタビューでも「みんなが思ってるカリギュラ…

FlutterでWebViewをがんばる

Flutter + WebView 最近FlutterのWebViewを触るようなことをやっている。 WebViewのプラグインにはいくつか実装があるが、大きく分けるとするとPlatformViewを使わないか使うかによって分けれる。 PlatformView を使わないか使うか PlatformViewを使わないと…

ノンデザイナーズ・デザインブックを読んだ

ノンデザイナーズ・デザインブック [第4版]作者: Robin Williams,米谷テツヤ,小原司,吉川典秀出版社/メーカー: マイナビ出版発売日: 2016/06/30メディア: 単行本(ソフトカバー)この商品を含むブログ (3件) を見るなんとなく認識しているようなことを言語化…

Android Studio 3.5にあげた

CIではテストが通るんだけど、手元では通らなくなってしまったので困っていた。 2019-09-25 15:29:48:978 (KOIN)::[e] Error while resolving instance for class 'com.google.gson.Gson' - error: org.koin.error.BeanInstanceCreationException: Can't cre…