전체 글 108

Flutter - 9. TodoList App (2) Todo Item 추가하기 (AlertDialog, FloatingActionButton)

오늘 만들 화면은 위와 같다. 위 화면을 구성하기 위해 할일은 다음과 같다. FloatingActionButton 생성 Todo Item 추가를 위한 AlertDialog 생성 생성된 Todo Item을 추가하고 리스트를 갱신 어려운 것은 없으니 천천히 시작해본다. 1. TodoModel 작성 Todo Item을 표현하기 위한 TodoModel 클래스를 작성한다. // todo_model.dart class TodoModel { String _title; TodoState _state; final DateTime _createdTime; TodoModel(this._title, this._createdTime) { _state = TodoState.todo; } String getTitle() => _t..

개발/Flutter 2021.01.25

[Android] Kotlin + MVVM + AAC 로 Todo 앱 만들기 - 6 (ViewBinding, DataBinding)

한참전에 DataBinding을 적용하기로 했었는데, 까맣게 잊고 있었다. 내 포스팅을 보고 공부하시는 분께서 DataBinding을 요청하셔서 추가로 포스팅한다. (게으른 나를 반성..) 귀찮으신 분들을 위한 최종코드 Github : github.com/DuItDDu/Android-Codelabs/tree/master/MyTodo 1. ViewBinding, DataBinding이 무엇인가? developer.android.com/topic/libraries/view-binding 뷰 결합 | Android 개발자 | Android Developers 뷰 결합 기능을 사용하면 뷰와 상호작용하는 코드를 쉽게 작성할 수 있습니다. 모듈에서 사용 설정된 뷰 결합은 모듈에 있는 각 XML 레이아웃 파일의 결합..

개발/Android 2021.01.20

Flutter - 8. TodoList App (1) 기본 UI 구성하기

이전 포스팅에서 예고했던 대로, Flutter로 간단한 TodoList App을 만들어 볼 것이다. 이번 포스팅은 TodoListApp의 기본 UI를 구성해보도록 하겠다. 위와 같은 UI를 작성할 것이며, BottomNavigationBar의 아이템을 클릭하면 현재의 아이템도 변경되도록 작업 할 것이다. 위 UI를 기반으로 기능을 붙여나가는 방식으로 진행 할 것이다. 1. 루트 페이지 만들기 class TabItem { String _title; IconData _icon; TabItem(String title, IconData icon) { _title = title; _icon = icon; } String getTitle() => _title; IconData getIcon() => _icon; }..

개발/Flutter 2021.01.18

Flutter - 7. Widget? Scaffold(AppBar, BottomNavigationBar, FloatingActionButton, Drawer)

전부는 아니지만, 많은 모바일 앱이 공통으로 띄는 형태가 있다. (주관적입니다.) 앱의 상단에 제목, 뒤로가기, 검색 등의 옵션이 있는 AppBar 앱의 하단에 페이지를 이동할 수 있는 BottomNavigationBar 앱 혹은 앱의 현재 페이지의 대표적인 행동을 할 수 있는 FloatingActionButton 그리고 앱의 컨텐츠 위 네 가지의 형태가 가장 많이 보이는 형태가 아닐까 싶다. 대충 이런느낌?! (카카오 Oven을 사용해서 이해를 돕기 위해 만들었다. 프로토타이핑은 어렵다 ㅠㅠ) 위의 형태를 Flutter에서는 아주 손쉽게 구현할 수 있도록 제공하고 있다. 제목에도 쓰여있듯, Scaffold가 바로 그것이다. 이 포스팅 전 까지 몇 개의 Widget을 보면서 Scaffold가 쓰였었는데,..

개발/Flutter 2021.01.17

Flutter - 6. Widget? GridView

이번 포스팅은 ListView와 유사하지만 격자 형태로 Widget을 표현할 수 있는 GridView를 알아보자. 1. GridView를 생성하는 5개의 방법 GirdView를 생성하는 방법은 5가지가 있다. GridView GridView.builder GridView.count GridView.extent GridView.custom 이번 포스팅에서 다룰 것은 1~4번의 방법이다. 2. GridView 생성자 사용 GridView의 생성자의 파라미터는 ListView의 생성자와 거의 유사하다. 추가로, ListView와 GridView는 동일한 부모를 상속하고 있다. class GridView extends BoxScrollView { ... } class ListView extends BoxScro..

개발/Flutter 2021.01.13

Flutter - 5. Widget? ListView

이전 포스팅에서 다양한 Widget들을 배치하기 위해 Row와 Coulmn을 다뤄보았다. Row, Column에 많은 Widget을 배치하게 되어 화면을 넘어가게 되었을 때, 스크롤이 되지 않고 잘리는 모습을 확인할 수 있다. 이번 포스팅은 많은 Widget을 리스트 형식으로 배치하고 스크롤이 가능한 Widget인 ListView에 대해 알아 볼 것이다. 1. ListView를 생성하는 4개의 방법 우선, ListView를 생성하는 방법은 4개이다. ListView ListView.builder ListView.separated ListView.custom 이 포스팅에서 다룰 것은 1~3번의 방법이며, 4번은 Delegate란 개념이 포함되어 있어 추후 포스팅으로 미루겠다. 1번은 명시적으로 ListVi..

개발/Flutter 2021.01.12

Flutter - 4. Widget? Row, Column

이전 포스팅에서 Text, Image, Button, Container에 대해 알아보았다. Container는 하나의 child를 가질 수 있어서 하나의 Text, Image, Button만을 표현할 수 있었다. 하지만 앱은 많은 Text, Image, Button들을 조합하여 개발된다. 이번 포스팅에서 Row, Column을 활용하여 다양한 구성요소로 화면을 구현 해 보자. 1. Row vs Column Row는 행 방향으로 Widget을 나열하며, Column은 열 방향으로 Widget을 나열한다. 각각의 생성자를 확인해보자. 생성자 파라미터의 구성을 보면 거의 동일한 것을 알 수 있다. 이 포스팅에서 다룰 파라미터는 세 가지다. MainAxisAlignment mainAxisAlignment Cro..

개발/Flutter 2021.01.11

Flutter - 3. Widget? Container, Text, Image, Button

앱의 UI를 구현할 때 가장 기본적인 것은 무엇일까? 개인적인 의견이지만, 텍스트, 이미지, 버튼이라고 생각한다. 앱은 사용자의 상태에 따라 적절한 문구와 이미지를 보여주고 버튼을 통해 액션을 유도하기 때문이다. Flutter에서 기본적인 UI를 구현하기 위한 Text, Image, Button에 대하여 알아보고, 이들을 담을 수 있는 Container에 대하여도 알아보자. 1. Container class BasicPage extends StatelessWidget { @override Widget build(BuildContext context) { return Container( ) } } StatelessWidget을 상속받는 BasicPage를 만들고 Container를 생성해본다. 꼭 Basi..

개발/Flutter 2021.01.10

Flutter - 2. Widget? StatelessWidget, StatefulWidget

Flutter는 Widget으로 앱의 화면을 구성한다. Flutter는 데이터 또는 상태를 Widget으로 표현하는 어플리케이션이라고 보면 될 것 같다. (지극히 개인적인 이해) Widget은 크게 StatelessWidget과 StatefulWidget으로 나뉘며, Flutter 프로젝트를 생성하면 자동으로 만들어지는 main.dart를 보며 가볍게 이해해보도록 하겠다. 여기서 프로젝트 생성 시 작성되어 있는 주석은 모두 삭제하였다. 1. main.dart의 void main()과 MyApp void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { // This widget is the root of your application. ..

개발/Flutter 2021.01.03

Flutter - 1. SDK 설치, Android Studio에 Flutter 플러그인 설치, 프로젝트 생성 및 구조

Flutter란, Google에서 내놓은 크로스 플랫폼 프레임워크다. flutter.dev/?gclid=Cj0KCQiA88X_BRDUARIsACVMYD-33cpDt0iokbs1q5Ei3MSh9HmtZU9YBI8DdynM5etba6ISpwJBUl0aAnQtEALw_wcB&gclsrc=aw.ds Flutter - Beautiful native apps in record time Flutter SDK is Google's UI toolkit for crafting beautiful, natively compiled applications for mobile, web, and desktop from a single codebase. flutter.dev 공식 홈페이지를 보면 알겠지만, 하나의 코드로 모바일과 웹..

개발/Flutter 2021.01.03
반응형