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

패키지 상세v1.8.0

rad

Dart를 사용하여 고성능 웹 앱을 만들기 위한 의존성이 없는 프론트엔드 프레임워크입니다.

Web
30일 다운로드
197
좋아요
59
Pub 점수
140

패키지 설치

flutter pub add rad

패키지 개요

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

RAD는 Dart를 사용하여 고성능 웹 애플리케이션을 구축하기 위해 설계된 의존성이 없는 프론트엔드 프레임워크입니다. 외부 종속성 없이 빠르고 확장 가능한 웹 앱을 개발할 수 있게 하며, 단순성과 효율성에 초점을 맞춥니다. RAD는 웹 전용으로 제작되었으며, Dart의 능력을 활용해 최소한의 부담으로 반응형 사용자 인터페이스를 제공합니다. 성능과 경량 아키텍처가 중요한 프로젝트에 이상적입니다. 깔끔한 디자인은 빠른 개발과 기존 워크플로우에의 쉬운 통합을 촉진합니다.

사용 사례

  • 고성능 웹 애플리케이션 구축
  • 경량 싱글 페이지 앱 만들기
  • Dart를 사용한 빠른 프로토타이핑
  • 서버 사이드 렌더링 웹 콘텐츠 개발
  • Flutter Web 프로젝트와의 통합

주요 기능

  • 외부 종속성 없음
  • 웹 성능에 최적화됨
  • 최소한의 보일러플레이트
  • Dart 네이티브 구문
  • 내장된 라우팅 및 상태 관리
  • 경량이고 모듈러한 아키텍처

적합한 대상

  • 경량 웹 프레임워크를 찾는 Dart 개발자
  • 속도와 효율성을 우선시하는 프로젝트
  • Flutter Web 개발자가 웹 기능을 확장하고 있습니다
  • 최소한의 설정과 구성이 필요한 팀
  • 중량 프레임워크를 피하는 프론트엔드 개발자

고려 사항

  • 더 큰 프레임워크와 비교해 생태계가 제한적
  • 계속 발전 중이며, 지역 자원이 적음
  • 복잡한 백엔드 중심 애플리케이션에는 적합하지 않습니다
  • Dart에 익숙해야 합니다
  • 레거시 지원이 필요 없는 현대 웹 브라우저에 가장 적합

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

Rad

Rad is a frontend framework for creating fast and interactive web apps using Dart. It has all the best bits of Flutter(StatefulWidgets, Builders) and React(Hooks, Performance), and allows you to use web technologies(HTML and CSS) in your app.

Rad(core) Reconciler codecov pub version

Quick links

Example

void main() {
  runApp(
    app: Text('hello world'),
    appTargetId: 'output',
  );
}

Function runApp will finds a element having id=output in your HTML page, create a Rad app with it, and then displays "hello world" inside of it. As you might have guessed it, Text('hello world') is a widget, a special purpose widget provided by the framework that we're using to display desired text on the screen. Rad provides number of widgets that you can use and best thing about widgets is that you can compose them together to create more widgets and build complex layouts.

Flutter widgets

Following widgets in Rad are inspired from Flutter:

These widgets has same syntax as their Flutter's counterparts. Not just syntax, they also works exactly same as if they would in Flutter. Which means you don't have to learn anything new to be able to use them.

React hooks

Similar to React, we have number of hooks that you can use to power-up your widget functions.

Let's see a basic example with useState:

Widget widgetFunction() => HookScope(() {
  // create a stateful value
  var state = useState(0);

  return Span(
    child: Text('You clicked me ${state.value} time!'),
    onClick: (_) => state.value++,
  );
});

runApp(app: widgetFunction(), ...);

While using hooks please keep in mind following things,

  1. Avoid calling Hooks inside loops, conditions, or nested functions.
  2. Always wrap body of your Widget-functions with a HookScope widget.
  3. Always use Hooks at the top level of your functions, before any widget/or early return.

HTML widgets

Rad provides you with more than 100 widgets that are dedicated to help you write HTML within your Dart code as easily as possible.

Let's look at this markup example:

<div>
  <p>Hey there!</p>
</div>

Here's how we'll write this using HTML widgets:

Division(
  children: [
    Paragraph(innerText: 'Hey there!'),
  ]
)

There's also an alternative syntax for all HTML widgets:

div(
  children: [
    p(innerText: 'Hey there!'),
  ]
)

Apart from syntax/names, HTML widgets are composable and has same semantics in the sense that they can be composed and mixed together with other widgets. For example,

Span(
  child: ListView(
    children: [
      SomeStatefulWidget(),
      Span(),
      ...
    ]
  ),
);

In above example, a Span widget is containing a ListView widget. Further, that ListView is containing a StatefulWidget and a Span widget. The point we're trying to make is that HTML widgets won't restrict you to 'just HTML'.

Additional Packages/Tools

Rad Test (package)

A testing library for Rad applications, heavily inspired from flutter_test.

Rad Hooks (package)

A set of commonly used hooks for using in your Rad applications.

Rad Extension (for VSCode)

Provides an enhanced development experience for developers working with the Rad Framework. With its powerful features, this extension makes it easier for developers to write and manage code, saving time and increasing productivity. Extension's top features are:

  • Visual JSX: Transforms your HTML widgets into a visually appealing, JSX-like syntax.

    Click to See Preview

    Visual-JSX Preview

  • HTML2Rad: Converts your HTML markup directly into Rad's HTML widgets.

    Click to See Preview

    HTML2Rad Preview

Reference

Below is the list of available widgets and hooks in Rad. Some widgets are named after Flutter widgets because they either works exactly same or can be used to achieve same things but in a different way(more or less). All those widgets are tagged accordingly.

Tags:

  • exact: Exact syntax, similar semantics.
  • same: Exact syntax with few exceptions, similar semantics.
  • different: Different syntax, different semantics.
  • untested: --
Abstract
Navigator/Routing
Builders
Functional
Misc
Hooks

useContext , useNavigator , useRef , useState , useMemo , useCallback , useEffect , useLayoutEffect

HTML Widgets (additional)

InputButton , InputCheckBox , InputColor , InputDate , InputDateTimeLocal , InputEmail , InputFile , InputImage , InputMonth , InputNumber , InputPassword , InputRadio , InputRange , InputReset , InputSearch , InputSubmit , InputTelephone , InputText , InputTime , InputUrl , InputWeek

HTML Widgets (short-syntax)

a , abbr , address , area , article , aside , audio , bdi , bdo , blockquote , br , button , canvas , caption , cite , code , col , colgroup , data , datalist , dd , del , details , dfn , dialog , div , dl , dt , em , embed , fieldset , figcaption , figure , footer , form , h1 , h2 , h3 , h4 , h5 , h6 , header , hr , i , iframe , img , input , ins , kbd , label , legend , li , map , mark , menu , meter , nav , ol , optgroup , option , output , p , picture , portal , pre , progress , q , rp , rt , ruby , s , samp , section , select , small , source , span , strong , sub , summary , sup , table , tbody , td , textarea , tfoot , th , thead , time , tr , track , ul , vartag , video , wbr

HTML Widgets (full-syntax)

Anchor , Abbreviation , Address , Article , Aside , Audio , BidirectionalIsolate , BidirectionalTextOverride , BlockQuote , Button , Canvas , Citation , Data , DataList , Definition , DeletedText , DescriptionDetails , DescriptionList , DescriptionTerm , Details , Dialog , Division , EmbedExternal , EmbedTextTrack , Emphasis , FieldSet , Figure , FigureCaption , Footer , Form , Header , Heading1 , Heading2 , Heading3 , Heading4 , Heading5 , Heading6 , HorizontalRule , Idiomatic , IFrame , Image , ImageMap , ImageMapArea , InlineCode , InlineQuotation , Input , InsertedText , KeyboardInput , Label , Legend , LineBreak , LineBreakOpportunity , ListItem , MarkText , MediaSource , Menu , Meter , Navigation , Option , OptionGroup , OrderedList , Output , Paragraph , Picture , Portal , PreformattedText , Progress , RubyAnnotation , RubyFallbackParenthesis , RubyText , SampleOutput , Section , Select , Small , Span , StrikeThrough , Strong , SubScript , Summary , SuperScript , Table , TableBody , TableCaption , TableColumn , TableColumnGroup , TableDataCell , TableFoot , TableHead , TableHeaderCell , TableRow , TextArea , Time , UnOrderedList , Variable , Video

Contributing

For reporting bugs/queries, feel free to open issue. Read contributing guide for more.

카테고리

의존성

의존성 목록 1 개

소스 저장소

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

아직 데이터가 없습니다.