Screwdriver는 여러 플랫폼에서 개발을 간소화하고 가속화하기 위해 유용한 확장 기능과 보조 함수를 제공하는 Dart 패키지입니다. 문자열 조작, 날짜 처리, null 안전성과 같은 일반적인 작업을 위한 유틸리티 메서드를 제공하여 반복 코드를 줄입니다. 개발자 생산성을 최우선으로 고려해 설계되어 Flutter 및 Dart 프로젝트의 가독성과 일관성을 향상시킵니다. Android, iOS, Web, macOS, Windows, Linux를 지원하여 크로스플랫폼 애플리케이션에 적합합니다.
사용 사례
빠른 문자열 및 날짜 유틸리티
반복 코드 줄이기
크로스 플랫폼 개발
널 안전성 향상
코드 가독성 향상
프로토타이핑 가속화
주요 기능
풍부한 Dart 확장 세트
널 안전한 유틸리티 함수
크로스 플랫폼 호환성
최소 의존성 오버헤드
pub를 통한 간편한 통합
잘 문서화된 헬퍼
적합한 대상
생산성 향상을 원하는 플러터 개발자
유용한 코드를 표준화하려는 팀
빠른 개발이 필요한 프로젝트
Dart 전용 또는 다중 플랫폼 앱
깔끔하고 간결한 구문을 중시하는 개발자
고려 사항
팀 간에 사용될 경우 미세한 API 변경 사항이 발생할 수 있습니다
기능 향상에 국한되며, 완전한 프레임워크는 아님
버전을 업그레이드할 때는 신중한 검토가 필요합니다
복잡한 비즈니스 로직에 적합하지 않음
기존의 코딩 표준과 함께 사용하는 것이 가장 좋습니다
원본 README
연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.
Screwdriver
A dart package aiming to provide useful extensions and helper functions to ease and speed up development.
file.onModified(() => print('file modified'));
file.clear(); // flushes all the data of file
file.isEmpty;
file.appendString('hello');
file << 'some text';
file1 + file2; // appends file2 content at the end of file1
Some More
check(divider != 0);
runCaching((){
count / 0;
});
TODO('find a way to implement this properly'); // throws UnimplementedError on invocationTriple(45,true, 'Hello World');
user.takeIf((u) => u.age > 18)?.allowAccess();
person.takeUnless((p) => p > 18)?.areTeenagers();
finalDateTime date = tomorrow;
yesterday.isInDecember;
Check out EXTENSIONS.md for a complete list of all the available extensions.
Please file feature requests and bugs at the issue tracker.
Liked Screwdriver?
Show some love and support by starring the repository.
Or You can
License
Copyright (c) 2020, BirjuVachhaniAll rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributionsin binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.