계속 되는 예제 따라하기 - 당분간 코드팩토리 님 책.

https://github.com/1day1/flutter-practice-wemet

일단 시작
https://github.com/1day1/flutter-practice-wemet/commit/742c1bcc46aa0b35f9343404a38c765335411a3f

하나씩 개선해 나간다.

 

[개선할 사항]

뭐가 있을까?

1) 날짜를 저장해보자. shared_preferences 같은 것으로 저장해보자.
https://github.com/1day1/flutter-practice-wemet/commit/7e950cd51c26a5c1db77efa9e22ee64de763bc8b

재실행해도 날짜를 기억한다.

2) iOS 시뮬레이터 상에 날짜 선택할때 이상한 부분이 있다.(시뮬레이터에서만 그런가?)

 

 

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

이번에는 코드팩토리 님의 책을 보면서 따라하고 있다.

책은 보강이 되어 2판이 나왔으니, 혹시 참조
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=332270019

 

Must Have 코드팩토리의 플러터 프로그래밍 2판

플러터 시작을 위한 다트 언어를 기초부터 객체지향, 비동기 프로그래밍, 신규 3.0 문법까지 4개 장에 걸쳐 다룬다. 독자가 꼭 필요한 내용을 학습할 수 있도록 플러터 기본 위젯부터 현업에 유용

www.aladin.co.kr

이번 예제는 복잡하지는 않지만, 개선 부분을 시도해보려고 추가한다.
https://github.com/1day1/flutter-practice-pageview

 

[개선할 부분]

1) 이미지를 assets 으로 등록해서 보여주는 것을 network 에서 가져오는 방식으로 변경
https://github.com/1day1/flutter-practice-pageview/commit/868e7c401119cb3ffec4ecd4dd1a29c78b718090

2) 이미지를 폰의 이미지를 가져와서 보여주는 방식으로 변경.
https://github.com/1day1/flutter-practice-pageview/commit/c1a683e8388d793f60c99ca472d598582e3f9f34

  커밋 하니 여러개가 딸려가네( vs code / android studio 가 git 처리 방식이 다른가?)
  혹시 보실 분은 참조 ( lib/ 아래 코드만 보시면 될 듯 )

  image_picker 를 활용한 방법

3) 위 2)번에서 이미지의 페이지 수 / 페이지 상 위치등도 표시.

 

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

[따라하기의 필수는 가능한 직접 타이핑 한다]

노마드코더님의 강의는 일단 마지막 따라하기 가 될 듯 하다.
웹툰 강의 : https://nomadcoders.co/flutter-for-beginners/lectures/4159

json 데이터 처리하기 / FutureBuilder / shared_preferences 등 여러가지 유용한 것들
https://github.com/1day1/flutter-practice-webtoon

url_launcher 부분에서 iOS / android 등 설정하는 부분은 좀더 살펴봐야 할 듯 하다.(iOS 가 실행이상)

[iOS 이슈 해결]
iOS 쪽 설정 ( iOS / Runner / Info.plist 수정 후 )

	<key>LSApplicationQueriesSchemes</key>
	<array>
		<string>https</string>
	</array>


시뮬레이터 가 이상이 있었는데, cocoapods 를 재설치? 를 해주면 되는 것 같다 (맥 기준 아래 명령)

brew install cocoapods

 

개선할 사항이 있을 듯 하지만, 왠지 디비 연동이 필요할 듯 하다. - 일단 여기서는 패스 .. 다른 강의로..

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

한동안 이런식으로 앱개발 따라하기 를 정리하기로 했다.

[따라하기의 필수는 가능한 직접 타이핑 한다]

기본강의는 노마드코더 님의 강의를 참조
이번강의 : https://nomadcoders.co/flutter-for-beginners/lectures/4154

조금씩 개선해보는 것을 정리한다.

타이머 시작 / 중지 / 리스타트 등의 처리
기본 다크모드 색상으로 / 색상처리 최신버전에 맞게 교정.
https://github.com/1day1/flutter-practice-pomodoro

 

[개선해볼 사항]

1) 다크모드 를 전환할 수 있게. 버튼위치를 어디로 할까?
https://github.com/1day1/flutter-practice-pomodoro/commit/cf2d908b06489cebb321c9b6a6f92af79b652632

2) 온보딩 - onboarding 처리해봤다.
https://github.com/1day1/flutter-practice-pomodoro/commit/0a701eecfcbb7c037670ca4027ebc946df7ad499

온보딩 처리는 https://www.youtube.com/watch?v=BfR_daMJ6I8 강의를 참조했는데,
해당 부분에서 onboarding_info 클래스가 vscode 에서 에러경고로 안되서, set / get 처리 하는 방식으로 수정을 했다.

 

추가 개선사항은 일단 여기까지... 다른 강의로...

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

플러터를 공부하면서, 강의도 보면서 따라 앱 만들기를 하고 있다.

[따라하기의 필수는 가능한 직접 타이핑 한다]

여러강의를 보면서 따라하고, 진행상황을 정리하고자 한다.

이번은 노마드코더 님의 강의 중 한 부분을 따라했다.
https://nomadcoders.co/flutter-for-beginners/lectures/4139 (3강 UI Challenge )

* 깃허브에 기본강의 + 나름의 개선 사항을 적용해봤다.
https://github.com/1day1/flutter-practice-toonflix

wallet 의 카드 부분을 커스텀 위젯으로 만들고, 이 부분을 또 데이터를 넘겨서 처리해봤다.
https://github.com/1day1/flutter-practice-toonflix/blob/main/lib/widgets/wallet.dart

typedef WalletData = ({
  String text1,
  String amount,
  String text3,
  IconData curIcon,
  bool isInverted
});

typedef 로 데이터를 정의하고 ( C/go 등의 구조체 -struct- 와 비슷한 것 같다) 해당 데이터를 List 화 한 후 넘겨주었다.

walletDatas: [
                    (
                      text1: 'Euro',
                      amount: '6 234',
                      text3: 'EUR',
                      curIcon: Icons.euro_rounded,
                      isInverted: false,
                    ),
                    (
                      text1: 'Dollar',
                      amount: '55 124',
                      text3: 'USD',
                      curIcon: Icons.attach_money_outlined,
                      isInverted: true,
                    ),
                    (
                      text1: 'Bitcoin',
                      amount: '1.2894',
                      text3: 'BTC',
                      curIcon: Icons.currency_bitcoin_outlined,
                      isInverted: false,
                    )
                  ]

 

[추가 개선할 부분]

1) curIcon 과 isInverted 도 값을 넘겨줄 필요없이, 내부적으로 처리한다.
2) text1 / text3 도 한쪽만 값을 보내서 처리한다.
=> https://github.com/1day1/flutter-practice-toonflix/commit/ab019691a70aa38a9908cee2a543c351ca51ec59

currencyInfo 를 내부 데이터로 처리했는데, 2차원 Map 의 접근은 못하나?
(예를 들어 currencyInfo['USD']['currency'] 로 바로 접근이 되면 좋은데, 못 찾겠다.)

일단 singleWhere 로 처리함.

3) 위 값을 json 타입으로 가져온다(외부 연동 염두)
=> https://github.com/1day1/flutter-practice-toonflix/commit/2d812367e535f296a8d55b6ec04d29a0c525637e

json 파일을 불러와서 보여지도록 조치함.

 

[일단 여기까지 다른 강의 따라하기로 ..]

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

플러터를 공부하고 있는데, 가상머신 (안드로이드 / 아이폰) 을 통해 충분히 테스트 할 수 있다.

그러나 실제 폰에서 하면 "좀더 실감(?) 난다" 는 느낌이고, 실제적으로 가상머신은 메모리를 많이 먹는다.(최소 수기가의 메모리가 필요)
그래서 메모리가 적은 기기를 사용해 개발하는 경우 실제폰을 연동하는게 좋다.

예전 기억으로는 USB 케이블 연결하고 해서 좀 복잡한 느낌이었는데, 무선디버깅이 생겨서 좀더 편해진 듯 하다.
전체적인 설명은 구글링해서 하면 된다.

진행하면서 이상한 부분이 있어서 그 부분을 정리한다.

1) 무선 디버깅 - 장치를 찾지 못한다.

  위 처럼 정상적으로 장치가 등록이 되어야 하는데, 와이파이 아이콘을 클릭 후 장치를 찾으려면 안되는 경우가 있다.

장치를 못 찾는다.

핸드폰에서 개발자옵션을 키고 , 무선디버깅 항목으로 들어간다.

순서는 무선디버깅 on => 기기 페어링 => 기기 연결  순서로 한다.

안드로이드 스튜디오에서 터미널을 열어서 다음 과 같은 명령을 내린다. (페어링 포트 와 연결 포트가 다른 것에 주의)

# adb pair 192.168.99.25:40425
Enter paring code: 305619
Successfully paired ...

페어링되면 기기가 위처럼 보인다.

# adb connect 192.168.99.25:43169

connect 까지 하면 - android studio 에서 실행파일을 전송 할 수 있다.

2) 전송하면 설치가 안된다.

USB 로 설치 가 허용되어야 한다.

무선디버깅하면 USB 항목은 없어도 되는 줄 알았는데, 위 "USB 로 설치" 항목은 필요하다.

 

장치 찾기가 되면 편하겠지만, 수동? 연결이라도 되니 나쁘지는 않다.
(기기 특성으로 못 찾는 것인지는 추후 필요하면 정리)

 

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

플러터 초기 설정 관련

flutter doctor 를 해보면 android studio 에 플러터 plugin 이 설치가 안되었다고 나온다면.

[!] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

위 처럼 나오면.

다음처럼 해본다. ( 개발버전으로 돌리는 것 같다)

$ flutter channel dev
$ flutter upgrade

OK 정상 확인.

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

안드로이드 스튜디오 최신 버전 4.1 기준 ( 그 이하버전은 어떤지 미확인)

 

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,