아이디어와 DB를 연결하는 작업을 해보고 싶었다. 원래는 아이스크림을 해보고 싶었는데, 너무 좋아하는 일은.. 아무래도 시작하기 어렵다. 자꾸 이것저것 생각나는 것들이 서로의 다리를 잡는다.
본 프로젝트의 취지는, 아 맞다. 그거 좋았는데…! 를 방지하는 것이다.
요즘 구매 플랫폼이 너무 많다. 화장품 하나 사려고 올리브영만 가던 시대는 끝났다.
올리브영에서 용량과 가격, 구성을 확인하고서 컬리뷰티, 무신사뷰티, 쿠팡, 다이소뷰티까지. 물건이 좀 팔린다 싶으면 있는 온갖 온라인 쇼핑몰 플랫폼에서는 쿠폰과 다양한 콜라보, 특별한 구성 등등으로 나를 현혹시킨다. 거기까지는 괜찮을 수 있는데, 나중에 내가 뭘 얼만큼에 샀는지 기억이 안난다.
나중에는 어떤 상황에 어떤 물건을 샀는지도 기억이 잘 안난다.
뭐 하나 살 때마다 내 구매 내역을 돌아다니는 수 밖에 없다.
정말 귀찮아서 엑셀로 정리해보려고 했지만, 그것도 은근히 일이었다. 그냥 폰으로 보고 쓰윽쓰윽 하고 싶.. 어…??
- 내가 사용하고 있는 물건들 용도랑 구매처, 가격 정리하고 싶어! > Project
- DB 활용 능력 키우고 싶어! > AWS, MYSQL
- 다른 사람들도 접근 가능했으면 좋겠어! > Flutter
그래서 시작된 프로젝트, 나만의 아이템 서랍장 어플 만들기!!!
01. Flutter 사용해보기
1번 참고 사이트를 참고해서 Flutter, Android Studio를 냅다 깔았다. 참고로 나는 대학 때는 Matlab, C++을, 졸업후엔 Python, MYSQL 등을 다뤄봤다. 현업 수준은 아니고(그랬다면 정말로 좋았겠네..^^) 그냥 상대방 얘기 알아들으면 구글링해서 이것저것 만들 수 있는 수준.
날이 너무 추워서일까, 인터넷을 재부팅했는데도 드럽게 안 받아진다. 일단 내 열정과 기억이 휘발되기 전에 뭐라도 적어보는 중.
사용하는 Flutter 버전은 3.27.1, Android Studio 버전은 2024.2.1.12 패키지다.
Android Studio는 설치 마법사가 있어서 편한데, 이후에 깔아야하는 것들이 많다. 어차피 종류를 모르고, 필요한게 있으면 나중에 추가 설치하면 되니까 일단 standard로 깔아본다. emulator도 있고, SDK가 많다.
Flutter 환경변수 선언하고, program files에 옮기고서 bin 폴더를 path에 등록해주면 된다. 제대로 되었는지는 power shell 켜서 flutter doctor 명령어 결과에 따라 확인이 가능하다.
Welcome 사인은 받았는데, Android studio가 아직 안 깔려서 머라머라 한다. 와중에 Visual Studio도 안깔려있다고 하니 그것도 받아야겠다. 깐 줄 알았는데, Visual Studio Code만 있네. 노트북이 너무 많아서 뭐가 깔려있는지 맨날 까먹는다. 미친..
와중에 Visual Studio 설치 관리자 업데이트도 한다고 난리다. 아 먼 하루가 깔다가 끝나겠네. 그러고보니 나의 Python과 MYSQL은 괜찮을까.. 확인해야겠다… 옛날 전화선으로 인터넷 요금 받을 때였으면 난 오늘 백만원이 머야 억단위로 나왔을 듯,,ㅎㅎ
와 모든 설치가 끝났고, 블로그에서 경고한대로 Intel® HAXM installation failed. To install Intel® HAXM follow the instructions found at: https://github.com/intel/haxm/wiki/Installation-Instructions-on-Windows 라는 오류와 대처법이 안내되었다. ㅎㅎ 진짜,, 뭐 하나 까는데 맨날 이래^^^
그래도 괜찮다. 왜냐면 요즘 또 velog 이용해서 코딩 문제 해결법 올리시는 분들이 엄청 많아졌거든!!!! 최고의 인재들..
안내된 방법 중 haxm 설치를 새로 하는 3번을 골랐고, 설치 프로그램이 너 이미 이거 있는데 또 까는거 ㄱㅊ? 하길래 일단 ㄱㄱ 했다. 알아서 on 설정으로 바꾸는 부분도 들어가있나 해가지고… 조금이라도 일을 덜 하고 싶어.
android studio에 flutter도 깔고, SDK 깔아야 하는 것도 깔고, 문제가 있는건 그냥 읽어보면 다 해결된다. 예전보다 더 친절하다.
[!] Android toolchain - develop for Android devices (Android SDK version 34.0.0) ! Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses
위의 문제는 그냥 라이센스 수락하는 과정이 필요한 것이라 안내된 명령문을 실행하고 y 를 연타하면 해결된다.
[!] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.12.3) X Visual Studio is missing necessary components. Please re-run the Visual Studio installer for the "Desktop development with C++" workload, and include these components: MSVC v142 - VS 2019 C++ x64/x86 build tools
- If there are multiple build tool versions available, install the latest C++ CMake tools for Windows
위의 문제는 visual studio installer를 켜서 수정 탭에 들어가서 Desktop development with C++ 옵션 선택해주면 된다.
오늘을 위해서 내 컴퓨터는 2TB 하드 두 개를 갖고 있는거겠지 ^.^ 작년에 없는 와중에 좋은 노트북 산다고 알바 찔끔찔끔해서 할부 갚느라 넘 힘들었는데,, 역시 빛을 발하네ㅎㅎ
Finally!!!
flutter doctor
no issues found!
근데 이제 시간이 오후 10시를 넘겨버린.. 다음에 마저 해봐야겠당 ^^
- 참고 사이트
환경설정 끝났는데 뭐라도 하나 해봐야 재밌을거 같애서 일단 마저 해봄. 어렵거나 재미없으면 내일 해야지.
Flutter new project를 실행한 후, flutter가 존재하는 path를 기억해서 넣어두고, project 위치와 이름, 생성할 platform도 선택한다. 일단 android와 ios를 만든다.
여기서 신기한건, project 이름에 대문자가 들어가면 안된다는 것이다. 왜지.
와중에 그래, 이럴 줄 알았다. 새로운 오류! 야호
The configured version of Java detected may conflict with the Gradle version in your new Flutter app. To keep the default AGP version Gradle version 8.3, download a compatible Java version (Java 17 = (Java 17 = compatible Java version Java 21) Java version Java 21). Configure this Java version globally for Flutter by running: flutter config --jdk-dir= Alternatively, to continue using your configured Java version, update the Gradle version specified in the following file to a compatible Gradle version (compatible Gradle version range: 8.4 - 8.7): C:\Users\UserK\project101\proj_02\android/gradle/wrapper/gradle-wrapper.properties You may also update the Gradle version used by running ./gradlew wrapper --gradle-version= . See https://docs.gradle.org/current/userguide/compatibility.html#java for details on compatible Java/Gradle versions, and see https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:upgrading_wrapper for more details on using the Gradle Wrapper command to update the Gradle version used.
아까는 분명히 없었는데, 갑자기 Java 호환성 문제가 생겼다. 참고 사이트 1번을 참고하여 Java 21을 활용한다는 사실을 알았다.
와중에 내 java 위치가 궁금해서 참고사이트 3번 참고해서 찾아봤는데 환경변수 설정에 없었다. 이 컴퓨터에서는 java 환경변수 선언을 안 했던것도 같다. 미친. java -version ㅐㅆ더니 없단다. 어이구. java도 없단다. ㅋㅋㅋㅋ java 깔러 간다. java가 23도 나왔단다. 그치만 호환성이 얼마나 중요한지 아니까 21을 깔 것이다.
깔고 나니까 문제는 사라졌다. 그렇지만 gradle, jdk, kotlin 정확히 뭔지는 모르겠는데 호환성 문제가 심하다는 것을 알겠다. 아무래도 여러 언어를 활용해서 편하게 개발하려면 결국엔 호환성 문제와 싸우는 것 같다.
개발 환경마다 필요한 추가 설치 요소도 다르고, 서로 연결되는 호환성 문제도 다르다보니까(아무래도 오픈소스들은 그냥 운이다. 사용하는 다른 언어가 다음 버전이 나왔어? 한 번 문제 없나 확인해보자 우와~~ 하는 사람들이 많으면 빠르고.. 아니면.. 뭐… 힘내야지)
여튼 main.dart라는 문서가 생겼다. 비어있다. 뭔지 모르겠다. 재밌당
02. Android Studio 사용해보기
일단 상단에 사용할 디바이스 고르는 것이 있다. chrome 고르고, 방금 만든 글의 main.dart 고르고, 초록 삼각형을 누르면 run된다.
빈 글인줄 알았는데, 버튼을 누르면 그 횟수를 알려주는 화면이 코딩되어 있다. 이게 그러니까 flutter 버전 Hello Python인가보다. 너무 재밌당
4번 참고사이트의 블로그를 보니 또 무언가 만들어야 한다고 한다.
03. Android Studio에서 위젯 만들기
analysis_options.yaml 파일을 열라고 하는데 안보인다. 좌측 상단에 Android로 되어있는 것을 Project로 바꾸면 짜란 아까랑은 다른 파일들이 보인다.
prefer_typing_uninitialized_variables :false
prefer_const_constructors_in_immutables :false
prefer_const_constructors :false
avoid_print :false
위와 같은 것을 적는다. 무언가 다 해제한다.
main.dart에 들어가서 아래의 부분만 남겨둔다.
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
대충 읽어보면 그거다. material.dart를 import 하고 무조건 MyApp()이라는 함수를 실행하는 코드.
근데 지금 MyApp()은 없는디.
바로 새로 정의해준다.
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
home:
// 필요한 widget을 home 아래에 나열한다.
Text('글자 나옴')
Icon(Icons.아이콘이름)
Image.asset('../assets/파일.확장자')
Container(width: 숫자, height: 숫자, color: Colors.색이름)
Center(
child: Container(width: 숫자, height: 숫자, color: Colors.색이름)
);
}
}
이때 assets 라는 폴더를 만들어주고, 그걸 사용하겠다고 pubspec.yaml 파일에 들어가서 flutter:아래에 작성해야 한다.
dependencies:
flutter:
assets:
- assets/
- 참고 사이트
그런데 너무 슬프게도 참고하던 블로거가 작년 2월에 프로젝트 생성 및 위젯까지만 만들고 끝냈다. 어쩔 수 없지.. 다음엔 무엇을 해볼까 찾아보자.
'질문하기' 카테고리의 다른 글
[01] 대한민국의 정의 (0) | 2024.12.19 |
---|