패키지, 저장소 및 앱 카테고리 검색

패키지 상세v1.2.0

screentasia

모든 화면에 아름답게 적응하는 디자인을 만드는 데 도움이 되는 기능이 풍부한 Flutter 패키지입니다.

AndroidiOSWebmacOSWindowsLinux
30일 다운로드
23
좋아요
51
Pub 점수
150

패키지 설치

flutter pub add screentasia

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

Screentasia는 모든 화면 크기와 플랫폼에서 반응형이고 적응형 UI를 쉽게 만들 수 있도록 설계된 Flutter 패키지입니다. 확장 가능한 레이아웃, 동적 타이포그래피, 일관된 간격을 제공하여 Android, iOS, 웹, macOS, Windows, Linux에서 디자인이 완성도 있게 보이도록 합니다. 다양한 화면 밀도와 방향을 처리하기 위한 내장 유틸리티로 반복 코드를 줄이고 반응형 개발을 간소화합니다. 유지보수성을 희생하지 않고 픽셀 단위의 적응성이 필요한 앱에 이상적입니다.

사용 사례

  • 크로스 플랫폼 앱 개발
  • 반응형 레이아웃 디자인
  • 적응형 타이포그래피 스케일링
  • 기기 크기에 관계없이 일관된 사용자 인터페이스
  • 동적 간격 조정
  • 다중 화면 최적화

주요 기능

  • 내장된 반응형 유틸리티
  • 플랫폼에 관계없는 디자인 지원
  • 화면을 위한 자동 스케일링
  • 유연한 레이아웃 구성 요소
  • 방향 인식 렌더링
  • 타이포그래피 및 간격 적응성

적합한 대상

  • 다중 플랫폼 앱을 개발하는 개발자
  • 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 

카테고리

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.