SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方Shohei Koyama
 
Azure Log Analytics 概要
Azure Log Analytics 概要Azure Log Analytics 概要
Azure Log Analytics 概要喜智 大井
 
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装infinite_loop
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門泰 増田
 
KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較Yoshiyasu SAEKI
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション土岐 孝平
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計Yoshinori Matsunobu
 
実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門Naohiro Fujie
 
20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS Batch20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS BatchAmazon Web Services Japan
 
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るSpring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るGo Miyasaka
 
インセプションデッキ: やらないことリストと トレードオフスライダーをやってる話
インセプションデッキ:やらないことリストとトレードオフスライダーをやってる話インセプションデッキ:やらないことリストとトレードオフスライダーをやってる話
インセプションデッキ: やらないことリストと トレードオフスライダーをやってる話Nobuhiro Yoshitake
 
人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with KarateTakanori Suzuki
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-Saki Homma
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~Miki Shimogai
 
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術までAkihiro Suda
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティスAmazon Web Services Japan
 
Firebase Authを Nuxt + Railsの自前サービス に導入してみた
Firebase Authを Nuxt + Railsの自前サービス に導入してみたFirebase Authを Nuxt + Railsの自前サービス に導入してみた
Firebase Authを Nuxt + Railsの自前サービス に導入してみたTomoe Sawai
 
REST API のコツ
REST API のコツREST API のコツ
REST API のコツpospome
 

Tendances (20)

インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
 
Azure Log Analytics 概要
Azure Log Analytics 概要Azure Log Analytics 概要
Azure Log Analytics 概要
 
Rest ful api設計入門
Rest ful api設計入門Rest ful api設計入門
Rest ful api設計入門
 
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
 
KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
 
実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門
 
AWS CLIでAssumeRole
AWS CLIでAssumeRoleAWS CLIでAssumeRole
AWS CLIでAssumeRole
 
20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS Batch20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS Batch
 
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るSpring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
 
インセプションデッキ: やらないことリストと トレードオフスライダーをやってる話
インセプションデッキ:やらないことリストとトレードオフスライダーをやってる話インセプションデッキ:やらないことリストとトレードオフスライダーをやってる話
インセプションデッキ: やらないことリストと トレードオフスライダーをやってる話
 
人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
 
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
 
Firebase Authを Nuxt + Railsの自前サービス に導入してみた
Firebase Authを Nuxt + Railsの自前サービス に導入してみたFirebase Authを Nuxt + Railsの自前サービス に導入してみた
Firebase Authを Nuxt + Railsの自前サービス に導入してみた
 
REST API のコツ
REST API のコツREST API のコツ
REST API のコツ
 

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

(デ部発表用抜粋版)プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
(デ部発表用抜粋版)プログラマとデザイナが共有すべきUIに関するAndroidの10の機能(デ部発表用抜粋版)プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
(デ部発表用抜粋版)プログラマとデザイナが共有すべきUIに関するAndroidの10の機能youten (ようてん)
 
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に関するAndroidの10の機能
プログラマとデザイナが共有すべきUIに関するAndroidの10の機能プログラマとデザイナが共有すべきUIに関するAndroidの10の機能
プログラマとデザイナが共有すべきUIに関するAndroidの10の機能youten (ようてん)
 
iPlotzで手書き風ワイヤーフレーム
iPlotzで手書き風ワイヤーフレームiPlotzで手書き風ワイヤーフレーム
iPlotzで手書き風ワイヤーフレームMasakatsu Sugii
 
アプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のことアプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のことleverages_event
 
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望についてKen Azuma
 
スマートフォン・タブレット UIガイドライン
スマートフォン・タブレット UIガイドラインスマートフォン・タブレット UIガイドライン
スマートフォン・タブレット UIガイドラインMultiDeviceLab
 
ユーザーストーリーワークショップ実践編
ユーザーストーリーワークショップ実践編ユーザーストーリーワークショップ実践編
ユーザーストーリーワークショップ実践編You&I
 
SCENARIOS, STORIES, USE CASES 10章
SCENARIOS, STORIES, USE CASES 10章SCENARIOS, STORIES, USE CASES 10章
SCENARIOS, STORIES, USE CASES 10章Yuichiro Saito
 
MTプラグイン入門以前
MTプラグイン入門以前MTプラグイン入門以前
MTプラグイン入門以前Hiroshi Yamato
 
デベロッパーも 知ってると便利 デザインの基本
デベロッパーも 知ってると便利 デザインの基本デベロッパーも 知ってると便利 デザインの基本
デベロッパーも 知ってると便利 デザインの基本inaba178
 
【schoo WEB-campus】どうすれば小さなチームでも大きな成果を出せるのか
【schoo WEB-campus】どうすれば小さなチームでも大きな成果を出せるのか【schoo WEB-campus】どうすれば小さなチームでも大きな成果を出せるのか
【schoo WEB-campus】どうすれば小さなチームでも大きな成果を出せるのかschoowebcampus
 
Metrostyleappに挑戦してみた
Metrostyleappに挑戦してみたMetrostyleappに挑戦してみた
Metrostyleappに挑戦してみたNobuaki Aoki
 
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設計のポイントを学ぼうKaz Aiso
 
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望についてKen Azuma
 
個人開発のオープンソースで起業&マネタイズ.pptx
個人開発のオープンソースで起業&マネタイズ.pptx個人開発のオープンソースで起業&マネタイズ.pptx
個人開発のオープンソースで起業&マネタイズ.pptxuchi825
 
Appsheet基礎講座.pptx
Appsheet基礎講座.pptxAppsheet基礎講座.pptx
Appsheet基礎講座.pptxssuser5f5987
 
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~
【17-E-4】 未来はどこにいても誰にでも平等にある。 未来を創るのは自分自身だ。 ~SIerの中で生きるということ~Yoshitaka Kawashima
 
アプリ・サービスのUI/UXのモックアップ(ワイヤフレーム)の簡単な描き方
アプリ・サービスのUI/UXのモックアップ(ワイヤフレーム)の簡単な描き方アプリ・サービスのUI/UXのモックアップ(ワイヤフレーム)の簡単な描き方
アプリ・サービスのUI/UXのモックアップ(ワイヤフレーム)の簡単な描き方Spath School
 

Similaire à 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