SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
flutter_screenutilを実業務で使ってみた
〜デザインを画面サイズごとに反映させるTips〜
内容
飲食店アプリ実装の中で学んだことではあるが.....
飲食店アプリ固有の話
デザインを綺麗に、かつ簡単に反映させる方法
+アルファ 業務で試してみてどうだったかの話
※かなり、Figmaに偏った情報を元に話します。
flutter_screenutilとは?
アプリ開発でネックになりがちな「画面サイズの違い」を、調整して
くれるライブラリ。
例)横幅・縦幅・フォントサイズなど
https://pub.dev/packages/flutter_screenutil
例 以下のFigmaの画面を元に実装する
※フレーム「750 × 1624」
(そもそもデバイスサイズと合ってないのです
が、それでも実装可能)
○ フレームサイズを確認して、
一番親Widgetとして設定したScreenUtilInitに値を記入
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return ScreenUtilInit(
designSize: const Size(750, 1624),
minTextAdapt: true,
splitScreenMode: true,
useInheritedMediaQuery
: true,
builder: (context, child) {
return MaterialApp(
○ 要素のサイズを確認して、値を設定する。
横サイズを基準とする場合は「.w」縦サイズを基準とする場合は「.h」をつける
child: Column(
children: [
SizedBox(
width: 700.w,
height: 700.h,
child: Image.asset(
'assets/coupon_sample.png'
,
fit: BoxFit.fill,
),
),
…
○ 余白を確認して、値を設定する。
横サイズを基準とする場合は「.w」縦サイズを基準とする場合は「.h」をつける
...
child: const Center(
child: Text(
'2022年12月31日まで有効',
// style: TextStyle(fontSize: 26.sp),
),
),
),
SizedBox(
height: 40.h,
),
Container(
width: 700.w,
height: 100.h,
...
○ 丸みを持たせた要素などは、radius (半径)を確認して
サイズに「.r」をつける
...
Container(
width: 700.w,
height: 100.h,
decoration: BoxDecoration (
color: const Color(0xFF909090),
borderRadius:
BorderRadius .circular(10.r),
),
child: const Center(
child: Text(
'使用する',
style: TextStyle(color: Colors.white),
),
),
),
...
○ フォントサイズも画面サイズに合わせて変化させたい場合は
「.sp」を値につける
...
child: const Center(
child: Text(
'2022年12月31日まで有効',
// style: TextStyle(fontSize: 26.sp),
),
),
),
実装結果
A. Figmaの値をそのまま設定した場合 B. flutter_screenutiで設定した場合
iPhone 13 Pro(390.0 × 844.0)
※Device Previewの画面
元デザイン
実装結果
A B
Sony Xperia 1 II(411.0 × 960.0)
元デザイン
デザインをそのままソースコードに落とし込める!!
機械的に実装できる上、綺麗!!
機械的に機械的に実装...
(業務で使ってみて)落とし穴にハマる
○縦横比率が大事な要素
例)画像素材などの表示
A. Figmaの値をそのまま設定した場合 B. flutter_screenutiで設定した場合
画面のサイズに合わせてサイズ変更するからこそ、
比率がおかしくなって画像が綺麗に表示されない
iPad Pro(11-inch)
(834 × 1194)
flutter_screenutilを使いつつ、
縦横比率を保つには?
height・widthを「.w」か「.h」に統一する
child: Column(
children: [
SizedBox(
width: 700.w,
height: 700.w,
child: Image.asset(
'assets/character_sports_soccer..png'
,
fit: BoxFit.fill,
),
),
…
所感)
デザインが縦向きなら「
.w」でいいのではないかと思っている。
余白は「.h」で対応した。
+ アルファ 画面の向きの変更 → 今回の案件では「縦固定」とした。
.w .h を活用している場合 .w のみの場合
.h のみの場合
※
明確な答えは出せてないです。
横向きを許容する場合は、ご注意ください
ちなみにpub.devにも
Noteで縦横比率に関わる「正方形」の表示の仕方が書いてありました。
flutter_screenutilを使ってみて
良いところ
・デザイナーとの協業がしやすい。
・デザイン再現度が上がった。
・実装速度も(体感)上がった。
注意が必要なところ
・縦横比率が大事な場合(画像・動画は特に注意!)
・画面の向き変更を許容する場合
Github
https://github.com/beeeyan/flutter_screenutil_sample

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Cinemachineで見下ろし視点のカメラを作る
Cinemachineで見下ろし視点のカメラを作るCinemachineで見下ろし視点のカメラを作る
Cinemachineで見下ろし視点のカメラを作る
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門
 
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
 
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
モバイルアプリの高速で安定したビルドを支えるJenkins運用術モバイルアプリの高速で安定したビルドを支えるJenkins運用術
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
 
WkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べたWkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べた
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
vm meetup_tokyo #1 NSX の運用と DFW トラブルシューティング
vm meetup_tokyo #1 NSX の運用と DFW トラブルシューティングvm meetup_tokyo #1 NSX の運用と DFW トラブルシューティング
vm meetup_tokyo #1 NSX の運用と DFW トラブルシューティング
 
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
 
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
 
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るSpring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
 
MQTTとAMQPと.NET
MQTTとAMQPと.NETMQTTとAMQPと.NET
MQTTとAMQPと.NET
 
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介
 
Androidの新ビルドシステム
Androidの新ビルドシステムAndroidの新ビルドシステム
Androidの新ビルドシステム
 
【Unity】 Behavior TreeでAIを作る
 【Unity】 Behavior TreeでAIを作る 【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
 
入社100日の新人がクラスメソッドでの激速の日々を赤裸々に語る
入社100日の新人がクラスメソッドでの激速の日々を赤裸々に語る入社100日の新人がクラスメソッドでの激速の日々を赤裸々に語る
入社100日の新人がクラスメソッドでの激速の日々を赤裸々に語る
 
【Unite Tokyo 2019】SPARKCREATIVE始動で見えてきた最新VFX動向とSPARKGEARの最新機能について
【Unite Tokyo 2019】SPARKCREATIVE始動で見えてきた最新VFX動向とSPARKGEARの最新機能について【Unite Tokyo 2019】SPARKCREATIVE始動で見えてきた最新VFX動向とSPARKGEARの最新機能について
【Unite Tokyo 2019】SPARKCREATIVE始動で見えてきた最新VFX動向とSPARKGEARの最新機能について
 
大規模システムリプレイスへの道
大規模システムリプレイスへの道大規模システムリプレイスへの道
大規模システムリプレイスへの道
 
【Unity道場】新しいPrefabワークフロー入門
【Unity道場】新しいPrefabワークフロー入門【Unity道場】新しいPrefabワークフロー入門
【Unity道場】新しいPrefabワークフロー入門
 
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
 

Semelhante a flutter_screenutilを実業務で使ってみた.pdf

Eggplant Functional - Lesson 10 (Japanese slides)
Eggplant Functional - Lesson 10 (Japanese slides)Eggplant Functional - Lesson 10 (Japanese slides)
Eggplant Functional - Lesson 10 (Japanese slides)
Eggplant
 
スマートフォン・タブレット UIガイドライン
スマートフォン・タブレット UIガイドラインスマートフォン・タブレット UIガイドライン
スマートフォン・タブレット UIガイドライン
MultiDeviceLab
 
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~
Yoshitaka Kawashima
 

Semelhante a flutter_screenutilを実業務で使ってみた.pdf (20)

(デ部発表用抜粋版)プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
(デ部発表用抜粋版)プログラマとデザイナが共有すべきUIに関するAndroidの10の機能(デ部発表用抜粋版)プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
(デ部発表用抜粋版)プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
 
Eggplant Functional - Lesson 10 (Japanese slides)
Eggplant Functional - Lesson 10 (Japanese slides)Eggplant Functional - Lesson 10 (Japanese slides)
Eggplant Functional - Lesson 10 (Japanese slides)
 
プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
プログラマとデザイナが共有すべきUIに関するAndroidの10の機能プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
 
iPlotzで手書き風ワイヤーフレーム
iPlotzで手書き風ワイヤーフレームiPlotzで手書き風ワイヤーフレーム
iPlotzで手書き風ワイヤーフレーム
 
アプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のことアプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のこと
 
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
 
スマートフォン・タブレット UIガイドライン
スマートフォン・タブレット UIガイドラインスマートフォン・タブレット UIガイドライン
スマートフォン・タブレット UIガイドライン
 
ユーザーストーリーワークショップ実践編
ユーザーストーリーワークショップ実践編ユーザーストーリーワークショップ実践編
ユーザーストーリーワークショップ実践編
 
SCENARIOS, STORIES, USE CASES 10章
SCENARIOS, STORIES, USE CASES 10章SCENARIOS, STORIES, USE CASES 10章
SCENARIOS, STORIES, USE CASES 10章
 
MTプラグイン入門以前
MTプラグイン入門以前MTプラグイン入門以前
MTプラグイン入門以前
 
デベロッパーも 知ってると便利 デザインの基本
デベロッパーも 知ってると便利 デザインの基本デベロッパーも 知ってると便利 デザインの基本
デベロッパーも 知ってると便利 デザインの基本
 
Indigo Studio で作るプロトタイプ
Indigo Studio で作るプロトタイプIndigo Studio で作るプロトタイプ
Indigo Studio で作るプロトタイプ
 
【schoo WEB-campus】どうすれば小さなチームでも大きな成果を出せるのか
【schoo WEB-campus】どうすれば小さなチームでも大きな成果を出せるのか【schoo WEB-campus】どうすれば小さなチームでも大きな成果を出せるのか
【schoo WEB-campus】どうすれば小さなチームでも大きな成果を出せるのか
 
Metrostyleappに挑戦してみた
Metrostyleappに挑戦してみたMetrostyleappに挑戦してみた
Metrostyleappに挑戦してみた
 
DELPHI BOOT CAMP / DELPHIでビジュアル開発に挑戦しよう ◆ DAY2: DELPHIでUI設計のポイントを学ぼう
DELPHI BOOT CAMP / DELPHIでビジュアル開発に挑戦しよう ◆ DAY2: DELPHIでUI設計のポイントを学ぼうDELPHI BOOT CAMP / DELPHIでビジュアル開発に挑戦しよう ◆ DAY2: DELPHIでUI設計のポイントを学ぼう
DELPHI BOOT CAMP / DELPHIでビジュアル開発に挑戦しよう ◆ DAY2: DELPHIでUI設計のポイントを学ぼう
 
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
 
個人開発のオープンソースで起業&マネタイズ.pptx
個人開発のオープンソースで起業&マネタイズ.pptx個人開発のオープンソースで起業&マネタイズ.pptx
個人開発のオープンソースで起業&マネタイズ.pptx
 
Appsheet基礎講座.pptx
Appsheet基礎講座.pptxAppsheet基礎講座.pptx
Appsheet基礎講座.pptx
 
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~
 
アプリ・サービスのUI/UXのモックアップ(ワイヤフレーム)の簡単な描き方
アプリ・サービスのUI/UXのモックアップ(ワイヤフレーム)の簡単な描き方アプリ・サービスのUI/UXのモックアップ(ワイヤフレーム)の簡単な描き方
アプリ・サービスのUI/UXのモックアップ(ワイヤフレーム)の簡単な描き方
 

flutter_screenutilを実業務で使ってみた.pdf