パッケージ、リポジトリ、アプリカテゴリを検索

パッケージ詳細v1.2.0

screentasia

すべての画面に美しい応用デザインを作成するのに役立つ、豊富な機能を備えたFlutterパッケージです。

AndroidiOSWebmacOSWindowsLinux
30日間ダウンロード
23
いいね数
51
Pub ポイント
150

パッケージをインストール

flutter pub add screentasia

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

Screentasia は、すべての画面サイズおよびプラットフォームで応答性があり、適応可能な UI を簡単に作成できるように設計された Flutter パッケージです。拡張可能なレイアウト、動的なタイプセッティング、一貫した余白を提供し、Android、iOS、Web、macOS、Windows、Linux でデザインが洗練された見た目になることを保証します。異なる画面密度や向きに対応するための組み込みユーティリティにより、ボイラープレートコードを減らし、レスポンシブ開発をスムーズにします。メンテナンス性を損なわず、ピクセル単位の適応性が必要なアプリに最適です。

用途

  • クロスプラットフォームアプリ開発
  • レスポンシブレイアウトデザイン
  • アダプティブタイポグラフィスケーリング
  • デバイスサイズにわたる一貫したUI
  • 動的スペース調整
  • マルチスクリーン最適化

主な機能

  • 組み込みのレスポンシブユーティリティ
  • プラットフォームに依存しないデザインサポート
  • スクリーン用の自動スケーリング
  • 柔軟なレイアウトコンポーネント
  • 方向認識レンダリング
  • タイポグラフィとスペースの適応性

適している対象

  • マルチプラットフォームアプリを開発する開発者
  • UIの一貫性を重視するチーム
  • さまざまなデバイス要件を持つプロジェクト
  • デザイナーが開発者と協力している
  • 複数の画面サイズをターゲットにするアプリ

注意事項

  • レスポンシブデザインの原則を理解する必要がある
  • シンプルなアプリにはわずかなオーバーヘッドが追加される可能性があります
  • 複雑なUIに最適
  • 既存のレイアウト構造との統合が必要です
  • 一部の組み込みウィジェットでのカスタマイズが限定的

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

Screentasia

Level Up Your UI, Enjoyable & Simple

#1 Best Screens UI Package

✨ Give a star for the Repo ✨

Screentasia

A Flutter package that helps you create beautifully adaptive designs for all screens with a wealth of features.

Features

  • 🚀 Adaptive From: To adaptive sizes from different screens like Mobile, Tablet, Desktop
  • ⚡️ Adaptive Percentage: To customize Adaptive percentage for different screens sizes in percentage for the hole app or for a specific widget
  • ➗️ Percentage Sizes: Now you can customize width and height as percentages from screen
  • ❤️ As you want: You can disable Adaptive for specific screens just passing 0
  • 🏋‍♂️️ No Media Query: No need for Media Query no more

Usage

Add dependency

Please check the latest version before installation.

If there is any problem with the new version, please use the previous version

dependencies:
  flutter:
    sdk: flutter
  # add screentasia
  screentasia: ^{latest version}
Add the following imports to your Dart code
import 'package:screentasia/screentasia.dart';
Property
Property Type Default Value Description
adaptiveFrom double adaptiveFrom . mobile Used to adapt sizes from chosen screen ex: if 500 width on a desktop is equal to 50% of the screen width, will be equal to 50% to all screens,also you can use custom screen with customScreen method
adaptivePercentage AdaptivePercentage AdaptivePercentage(mobile: 100, tablet: 100, desktop: 100) For adaptive percentage in different screens, also can disable adaptive for specific screens with 0 value as parameter
builder Function null Return widget that uses the library in a property (ex: MaterialApp's theme)
child Widget null A part of the builder that its dependencies/properties don't use the library
rebuildFactor Function default Returns whether to rebuild or not when screen metrics change.

Note : You must either provide builder, child or both.

Initialize
To Initialize the Tha Adaptive with you app
The first way (You must use it once in your app)
void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
   
    return ScreentasiaInit(
      adaptiveFrom: AdaptiveFrom.mobile, //optional for custom screen ex: customScreen(400,700)
      adaptivePercentage: AdaptivePercentage(mobile:100,tablet:100,desktop:100),//optional
      builder: (context , child) {
        return MaterialApp(
          debugShowCheckedModeBanner: false,
          title: 'Example',
          home: child,
        );
      },
      child: const HomePage(title: 'Example'),
    );
  }
}
Examples
In this example we will use only width for all situations to use adaptive values,Of course we can apply that concept in (Height,Font,Padding,etc)
Example using Values

We can create adaptive value for (width,height,font,etc) based on value in specific device for example (Mobile,Tablet,Desktop) or specific device dimension ( width,height )

to apply adaptive value for all screen

ex: 250.w '250 width in mobile screen'

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return ScreentasiaInit(
      adaptiveFrom: AdaptiveFrom.mobile,
      adaptivePercentage:
          const AdaptivePercentage(mobile: 100, desktop: 100, tablet: 100),
      builder: (context, child) {
        return MaterialApp(
            debugShowCheckedModeBanner: false,
            title: 'Flutter screentasia',
            home: Scaffold(
                appBar: AppBar(
                  title: const Text('Flutter screentasia Demo  Page'),
                ),
                body: Container(
                  color: Colors.blue,
                  width: 250.w,
                )));
      },
    );
  }
}
Desktop

Tablet

Mobile

Example using Percentage

We can create adaptive value for (width,height, font,etc) based on percentage

for example we will use width percentage 'wb' in diffrent screen sizes

ex: 50wp '50 width percent in screen'

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return ScreentasiaInit(
      adaptiveFrom: AdaptiveFrom.mobile,
      adaptivePercentage:
          const AdaptivePercentage(mobile: 100, desktop: 100, tablet: 100),
      builder: (context, child) {
        return MaterialApp(
            debugShowCheckedModeBanner: false,
            title: 'Flutter screentasia',
            home: Scaffold(
                appBar: AppBar(
                  title: const Text('Flutter screentasia Demo  Page'),
                ),
                body: Container(
                  color: Colors.blue,
                  width: 50.wp,
                )));
      },
    );
  }
}
Desktop

Tablet

Mobile

Example using Percentage in Specific Screen

We can create adaptive value for (width, height, font, etc) based on percentage

for example, we will use width percentage 'wb' in different screen sizes with different value percentages in specific screens

ex: 100wp '100 width per cent from Desktop Screen'

50wp '50 width per cent from Tablet Screen'

25wp '25 width per cent from Mobile Screen'

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return ScreentasiaInit(
      adaptiveFrom: AdaptiveFrom.mobile,
      adaptivePercentage:
          const AdaptivePercentage(mobile: 100, desktop: 100, tablet: 100),
      builder: (context, child) {
        return MaterialApp(
            debugShowCheckedModeBanner: false,
            title: 'Flutter screentasia',
            home: Scaffold(
                appBar: AppBar(
                  title: const Text('Flutter screentasia Demo  Page'),
                ),
                body: Container(
                    color: Colors.blue,
                    width: 100.wp.ap(
                        adaptivePercentage: const AdaptivePercentage(
                            desktop: 100, tablet: 50, mobile: 25)))));
      },
    );
  }
}
Desktop

Tablet

Mobile

API
Pass the dp size of the design draft
    Screentasia().setWidth(540)  (dart sdk>=2.6 ) another way (540.w) //Adapted to screen width
    Screentasia().setHeight(200) (dart sdk>=2.6 ) another way (200.h) //Adapted to screen height, under normal circumstances, the height still uses x.w
    Screentasia().radius(200)    (dart sdk>=2.6 ) another way (200.r)    //Adapt according to the smaller of width or height
    Screentasia().setSp(24)      (dart sdk>=2.6 ) another way (24.sp) //Adapter font
    Screentasia().setPercentage(MediaQuery.sizeOf(context).width,50)   (dart sdk>=2.6 : 50.wp)    //Device width in Percentage, You can use Height just replace MediaQuery.sizeOf(context).width with MediaQuery.sizeOf(context).height
    
    EdgeInsets.all(10).w    //EdgeInsets.all(10.w)
    EdgeInsets.only(left:8,right:8).r // EdgeInsets.only(left:8.r,right:8.r).
    Radius.circular(16).w          //Radius.circular(16.w)
    BorderRadius.all(Radius.circular(16)).w  

    ap(tablet:50) //adaptive percentage, tablet 50 means that adaptive percentage 50% only on tablet screens, the default is 100% for all screens 

カテゴリー

ソースリポジトリ

このパッケージを使用しているプロジェクト

データはまだありません。