Submit Search
自作flutterアプリをリファクタリングしてみた!
0 likes
312 views
とさ はるき
22卒つよつよLTのスライド資料です! タイトルが切れちゃってるけど..
Engineering
Read more
1 of 20
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
More Related Content
PPT
Natural language processing
prashantdahake
PDF
MNE-Python Coregistration
mne-python
PPTX
Mobile Application Development Process
ChromeInfo Technologies
PDF
Web scraping in python
Viren Rajput
PPTX
NLP Bootcamp
Anuj Gupta
PDF
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
Shinnosuke Tokuda
PPTX
Natural Language processing
Sanzid Kawsar
PDF
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
akipii Oga
Natural language processing
prashantdahake
MNE-Python Coregistration
mne-python
Mobile Application Development Process
ChromeInfo Technologies
Web scraping in python
Viren Rajput
NLP Bootcamp
Anuj Gupta
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
Shinnosuke Tokuda
Natural Language processing
Sanzid Kawsar
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
akipii Oga
What's hot
(20)
ODP
Introduction to Mobile Application Development
shikishiji
PPTX
Sentiment analysis using naive bayes classifier
Dev Sahu
PDF
Natural Language Processing (NLP)
Yuriy Guts
PDF
MongoDB Cheat Sheet – Quick Reference
César Trigo
PDF
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
PDF
【15-A-4】Redmine + Lychee 導入のアンチパターン
Developers Summit
PPTX
Expense tracker
Lay Leangsros
PDF
Twitter sentimentanalysis report
Savio Aberneithie
PPTX
Day: 1 Introduction to Mobile Application Development (in Android)
Ahsanul Karim
PPTX
Java EE パフォーマンスTips #glassfish_jp
Norito Agetsuma
PDF
継承やめろマジやめろ。 なぜイケないのか 解説する
TaishiYamada1
PPTX
NLP
Girish Khanzode
PDF
Python Basics | Python Tutorial | Edureka
Edureka!
PPTX
Chatbot ppt
Geff Thomas
PPTX
ExpenseTracker(ppt).pptx
AshutoshTiwari618270
PPTX
NLP
guestff64339
PPTX
Bert
Abdallah Bashir
PDF
Lecture: Question Answering
Marina Santini
PPTX
Sentiment Analysis Using Product Review
Abdullah Moin
PPTX
レガシーコードに向き合ってみた話
株式会社MonotaRO Tech Team
Introduction to Mobile Application Development
shikishiji
Sentiment analysis using naive bayes classifier
Dev Sahu
Natural Language Processing (NLP)
Yuriy Guts
MongoDB Cheat Sheet – Quick Reference
César Trigo
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
【15-A-4】Redmine + Lychee 導入のアンチパターン
Developers Summit
Expense tracker
Lay Leangsros
Twitter sentimentanalysis report
Savio Aberneithie
Day: 1 Introduction to Mobile Application Development (in Android)
Ahsanul Karim
Java EE パフォーマンスTips #glassfish_jp
Norito Agetsuma
継承やめろマジやめろ。 なぜイケないのか 解説する
TaishiYamada1
NLP
Girish Khanzode
Python Basics | Python Tutorial | Edureka
Edureka!
Chatbot ppt
Geff Thomas
ExpenseTracker(ppt).pptx
AshutoshTiwari618270
NLP
guestff64339
Bert
Abdallah Bashir
Lecture: Question Answering
Marina Santini
Sentiment Analysis Using Product Review
Abdullah Moin
レガシーコードに向き合ってみた話
株式会社MonotaRO Tech Team
Ad
Similar to 自作flutterアプリをリファクタリングしてみた!
(20)
PPTX
社内発表資料
ssuser0b0d0b
PDF
Flutterやってみよう
Ryuto Yasugi
PDF
DartPad+CodePenで、Flutterを体験してみよう
cch-robo
PPTX
Flex入門
Shinjiro Watanabe
PDF
論理思考とプログラミング 2013f#10
Noritada Shimizu
PPTX
きつねさんでもわかる Firefox OS コードリーディング入門
Mizuho Sakamaki
PDF
GDG Tokyo New Year Seminar 2018 -Dialogflow-
SENSY Inc
PDF
Fluentdcasual 02-haikanko
Naotoshi Seo
PPTX
Flutter first impression
小川 昌吾
PPTX
Trat_sprint3
tratwakate
PPTX
自己紹介とC# Devkitについて.pptx
hkharu0803
PDF
Firefox OS 勉強会 名古屋2nd 「便利な便利な開発ツール」
Noritada Shimizu
PDF
できる!スマホアプリ:Webからはじまるアプリ for CMU16
Masami Yabushita
PDF
[Potatotips]クロスプラットフォーム開発Tips
Kenichi Kambara
PDF
PHPカンファレンス福岡に 行ってきた
Tomoki Hasegawa
PDF
F*言語ワークショップ
TakuKitamura1
PPTX
Win/Mac/Android/iOS向けクロスプラットフォーム開発にXamarinがうまくハマりそうだった話
Takuya Kikuchi
PDF
『こつこつ』ポートフォリオ用資料.pdf
ssuser65f8d8
PDF
ポートフォリオ用資料 (1).pdf
ssuser65f8d8
PPTX
Python
卓馬 三浦卓馬
社内発表資料
ssuser0b0d0b
Flutterやってみよう
Ryuto Yasugi
DartPad+CodePenで、Flutterを体験してみよう
cch-robo
Flex入門
Shinjiro Watanabe
論理思考とプログラミング 2013f#10
Noritada Shimizu
きつねさんでもわかる Firefox OS コードリーディング入門
Mizuho Sakamaki
GDG Tokyo New Year Seminar 2018 -Dialogflow-
SENSY Inc
Fluentdcasual 02-haikanko
Naotoshi Seo
Flutter first impression
小川 昌吾
Trat_sprint3
tratwakate
自己紹介とC# Devkitについて.pptx
hkharu0803
Firefox OS 勉強会 名古屋2nd 「便利な便利な開発ツール」
Noritada Shimizu
できる!スマホアプリ:Webからはじまるアプリ for CMU16
Masami Yabushita
[Potatotips]クロスプラットフォーム開発Tips
Kenichi Kambara
PHPカンファレンス福岡に 行ってきた
Tomoki Hasegawa
F*言語ワークショップ
TakuKitamura1
Win/Mac/Android/iOS向けクロスプラットフォーム開発にXamarinがうまくハマりそうだった話
Takuya Kikuchi
『こつこつ』ポートフォリオ用資料.pdf
ssuser65f8d8
ポートフォリオ用資料 (1).pdf
ssuser65f8d8
Python
卓馬 三浦卓馬
Ad
自作flutterアプリをリファクタリングしてみた!
1.
LT 土佐陽生 開発しているflutterアプリをリファクタリング してみた
2.
自己紹介 • 土佐陽生(とさ) • twitter(@tosa_now) •
明治大学理工学部情報科学科3年 • Go, Ruby, PHP, Dart(flutter) • チェンソーマンにハマっています
3.
flutter/Dart概要 (1) Flutter is Google’s
UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase. -> (ぼんやり訳) iOS, android, webアプリを作成できる! (引用元: https://flutter.dev/)
4.
flutter/Dart概要 (2) • HotReload • Material
Designにのっとったアプリ開発がとてもやりやすい! • Dartと呼ばれる一つの言語で作成されている
5.
作成中のアプリケーション
6.
作成中のアプリケーション
7.
ディレクトリ構造
8.
リファクタリングしようと思ったきっかけ • コードが汚くなっていると開発意欲が下がる • 初めてflutterで作成したアプリだったので学習していく内にいい書き方がわ かってくる •
これからも開発が続きそう • Fat ができ始めてきた
9.
リファクタリング
10.
静的解析の導入 • twitterのエンジニアさんに教えてもらった • 真っ赤っか(Dartは型チェックが緩め) •
まずはこれを修正していくことでよりいいコードを目指す analysis_options.yaml の導入
11.
constやfinalをきちんとつける 静的解析(1)
12.
asでしっかりと型を指定する 静的解析(2) • dynamic型じゃだめ!しっかりとキャストしてあげる
13.
を に変更 静的解析(3)
14.
改善できなかったところ 静的解析(4)
15.
VscodeからAndroidStdioへ リファクタリング(2) • メモリの効率化(8GBの環境だととても効く) • 名称の変更が簡単にできる(Android
Studio -> refactoring) • performanceの計測ツールがある
16.
リロードが頻繁に起こっている箇所の特定 リファクタリング(3) • flutter performanceを使用してみてみる! •
レンダリング->データの取得-> レンダリング->データの取得… と永遠にリロードが起こっている箇所が…
17.
ルーティングの修正 リファクタリング(4) • モデルを意識して組み立てる • railsっぽく…
18.
状態管理の見直し リファクタリング(5) • 状態管理をすべきところにロジックを書きすぎていた(service層へ移動) • こちらもモデルを中心に考えて作成(homeroomのデータは homeroom_provider.dartに) 現在はここを取り組み中! このあとはWidgetの切り分けとかやっていきたい…(願望)
19.
まとめ • 静的解析ツールを用いて∼らしくないコードをきれいにしていく • ボトルネックになっている場所を特定して改善 •
処理をあるべき場所に移す • ルーティングはモデルを意識して変更 • でも一番は..(テストを書きましょう) • ios/androidアプリの開発難易度が下がります! • flutter楽しいです!!
20.
ありがとうございました!
Download