- [ 모바일/Flutter ]flutter 날짜형식 지정2024-02-05 22:58:53DateFormat Intl intl | Dart package Contains code to deal with internationalized/localized messages, date and number formatting and parsing, bi-directional text, and other internationalization issues. pub.dev 지역에 맞는 형식으로 날짜를 변환시켜주기 위해 사용한다 현재 시간을 받아오는 건 다른 라이브러리 없이 DateTime.now()면 되지만 형식을 지정하려면 intl 패키지가 필요하다 기본값은 `en_US`로 초기화가 필요하지 않다 print(DateFormat.yMMMd().format(DateTime.now())); => Feb 5, ..
- [ 모바일/Flutter ]flutter package_info_plus2024-02-02 20:50:41공식문서 package_info_plus | Flutter package Flutter plugin for querying information about the application package, such as CFBundleVersion on iOS or versionCode on Android. pub.dev 앱 버전을 사이드메뉴에서 보여주고 싶었다 처음에는 라이브러리 넣지 말고 그냥 버전 올릴 때마다 사이드메뉴를 수정해줬는데 몇 번 하다보니 잊어버려서 라이브러리를 추가하기로 했다 그래서 찾은 package_info_plus! and, ios, web 다 지원해준다(사실 패키지의 정보를 보여주는 거라 플랫폼은 무관할 것 같다) import 'package:package_info_plus/packa..
- [ 모바일/Flutter ]중첩된 다이얼로그 위에 스낵바 보여주기2024-02-01 21:56:46참고 1번 탭 스크린 화면에서 카드를 클릭하면 카드의 상세를 보여주는 다이얼로그를 띄우고 카드 상세 다이얼로그에서 댓글 버튼을 클릭하면 댓글 리스트 다이얼로그를 띄워준다 그리고 특정 댓글의 삭제 버튼을 클릭하면 댓글 삭제 요청 결과를 스낵바에서 띄워줘야 한다 그런데 스낵바가 맨 위의 다이얼로그, 그러니까 댓글 리스트 다이얼로그가 아니라 그 밑에 보였다 ScaffoldMessenger.of(context)를 쓰면 context를 이용해 위젯 트리 상단의 Scaffold Messenger를 찾아낸다. 이 Scaffold Messenger는 MaterialApp 내부에 위치해 있다. 위젯 트리를 올라가다가 만나는 scaffold messenger 위에 스낵바를 보여준다 alert 다이얼로그에서 Scaffold..
- [ 모바일/Flutter ]모두가 할 수 있는 플러터 UI 입문22024-01-09 21:52:19lib/theme.dart import 'package:flutter/material.dart'; ThemeData theme() { return ThemeData( primaryColor: Colors.white, appBarTheme: AppBarTheme( iconTheme: IconThemeData(color: Colors.blue), ) ) } - primaryColor: 브랜드의 아이덴티티 - accectColor: 앱의 상호작용 요소에 사용. 버튼, 링크 등 === secondaryColor double.infinity: width나 height에 이 값을 쓰면 해당 위젯이 차지할 수 있는 최대 크기를 가진다 Scaffold.drawer,endDrawer drawer는 Scaffold의 왼쪽..
- [ 모바일/Flutter ]모두가 할 수 있는 플러터 UI 입문12024-01-08 21:25:55수직은 Column 수평은 Row Scaffold: 구조가 있는 도화지로 MaterialApp 안에 꼭 Scaffold가 있어야 함 MaterialApp의 속성으로 debugShow CheckedModeBanner: false,를 주면 우상단의 Debug 배너가 사라진다 휴대폰 최상단에는 AppBar: 해당 화면에 대한 메뉴, 이동 버튼, 제목 등 - AppBar는 크게 세 줄로 이루어졌다고 할 수 있다 -- leading icon, title, actions -- flexibleSpace -- bottom lib/main.dart의 main() 함수에서 runApp()함수를 호출하는데 이 때 runApp에게 넘여주는 위젯이 앱의 루트가 된다 컴포넌트 재사용의 필요성 - 개발의 편리성 - 이미 사용자들에..
- [ 모바일/Flutter ][The Complete Flutter Development Bootcamp with Dart] 3 MiCard2024-01-05 23:49:14how to clone git with git repo's https clone 1. android studio-check out project from version control 2. Git 3. Url(git repo's https clone) 4. Directory(where you will install the project) 5. Clone 6. check out from version control alert - NO 7. open an existing android studio project - open(directory that you've set on No.4) 8. there will be an error when you open it => lib/main.dart - get depe..
- [ 모바일/Flutter ]Flutter에서 텍스트를 중앙에 배치하는 6가지 방법2024-01-04 23:05:12원문 플러터의 텍스트 위젯은 다양한 기능을 가진데다 커스터마이징을 하기에도 쉬운 강력한 도구다 사용자가 즐겁고 편하게 화면의 텍스트를 읽게 하는 가장 간단한 방법은 텍스트를 중앙에 위치시키는 것이다 버튼이나 사진같은 다른 위젯과 함께 텍스트를 정렬할 때도 좋다 다음은 텍스트를, 정확히는 위젯을 중앙 정렬하는 6가지 방법이다 1.Center center 위젯의 child는 수직 및 수평 중앙정렬된다 Center( child: Text("Center"), ) 2.Align child를 특정 위치에 두고 싶을 때 사용하는 위젯 Alignment.center를 이용해서 Align의 child를 중앙 정렬시킨다 Align ( alignment: Alignment.center, child: Text("Center"..
- [ 모바일/Flutter ][The Complete Flutter Development Bootcamp with Dart] 2 container, column, row2024-01-03 23:46:00컨테이너는 자식이 하나일 때 쓴다(child) 자식이 여러개 일 때는 column이나 row를 사용한다 MaterialApp( home: Scaffold( backgroundColor: Colors.teal, body: SafeArea( child: Column( children: [ Container(), Container(), ] ) ) )) 자식이 없는 컨테이너는 최대한 넓은 영역을 차지하려고 한다 (만약 크기를 제한하는 width, height 등이 있다면 그에 맞는 최소한의 영역을 차지한다 자식이 있다면 자식의 크기에 컨테이너의 크기를 맞춘다 column( mainAxisSize: MainAxisSize.min, //컬럼이 자식들에 맞는 사이즈로.. verticalDirection: Vertic..
- [ 모바일/Flutter ][The Complete Flutter Development Bootcamp with Dart] 12024-01-02 22:43:40https://www.udemy.com/course/flutter-bootcamp-with-dart/ Introduction flutter is kind of UI toolkit for developers to design beautiful interfaces for all sorts of screen sizes and devices more easily. they offer bunch of pre-vuild widgets you could deploy the app to all of devices just need one codebase to rule them all that code is Dart flutter is open source anyone can see the original code ev..
- [ 카테고리 없음 ][클린코드] 2장 Meaningful Names2024-01-01 22:37:36의도를 드러내는 이름 좋은 이름을 생각하는 데는 시간이 들지만 그보다 더 많은 시간을 아껴줄 것이다 개발 중에 더 적합한 이름을 찾았다면 바로 바꿔주자. 변수, 함수, 클래스 등 모든 것의 이름은 왜 만들어졌는지 하는 일이 무엇인지, 그리고 어떻게 쓰이는지에 대한 답이 될 수 있어야 한다. 주석이 필요한 이름은 의도를 드러내는데 실패한 이름이다. 중요한 것은 코드의 간결성이 아니라 코드의 함축성이다. public List getThem() { List list1 = new ArrayList()' for (int[] x: theList) if (x[0] == 4) list1.add(x); return list1; } 위의 코드를 다음과 같이 바꿔보면 이름의 함축성이 얼마나 중요한지 알 수 있다. publi..