본문 바로가기
카테고리 없음

ep2. 앱 개발, Native로 할까 Flutter로 할까?

by 반포한강공원 2025. 10. 10.

"앱을 왜 해요? 앱은 내가 할테니 아빠님은 서버하세요"

 

이렇게 외치던 지인이 있었다.

같이 늙어가는 처지에 서로 도와가면서 살자는 거다.

하긴, 혼자 다할 줄 알면 서로를 찾지 않게 되겠지.

 

하지만, 모바일은 꼭 한 번 해보고 싶었다.

결핍을 충족하는 느낌이랄까?

화면이라곤 옛날에 웹 해본 기억 밖에 없다.

그 다음엔 어드민 페이지 수정하던 게 대부분이었다.

 

안드로이드 앱 개발

Anroid App Architecture (UI Layer, Data Layer)

 

안드로이드 스튜디오를 깔았다.

화면을 어떻게 그리지?

UI Tool 같은 거 없나?

 

Layout Editor... 이거 진짜 말 안듣네.

조금만 옆으로 옮기고 싶은데 그게 안되네.

@Composable 에 @Preview라니.

Jetpack 은 뭘까?

머티리얼 디자인을 쓰면 된다던데, 이건 뭐고 저건 뭐야?

 

아, 웹이랑 완전히 다르구나.

뭐 이리 복잡한지 화면을 그릴 수가 없다.

웹은 흰 도화지에 그림 그리는 느낌인데, 여긴 뭔가 규칙이 있다.

 

규칙이 어딨지?

검색을 해본다.

무슨 말인지 모르겠다.

 

Figma 쓰면 된다는데...

아, 진짜 아무것도 모르겠다.

 

바뀐 세상

포토샵으로 만든 웹 UI

웹 시절엔 WISYWIG 디자인 툴이 있었다.

파워포인트에 그리듯 화면을 그리면 되었다.

div 태그, table 태그 등, 조금만 알면 되었다.

css 가 생기면서 색깔과 넓이 등을 자유롭게 정할 수 있었다.

 

앱 시절로 넘어오면서 규칙이 생겼다.

Appbar, Bottom bar 등이 생겼다.

이건 규칙이다.

사각 박스처럼 딱 주어진 틀로만 화면을 만들 수 있게 되었다.

 

5.2 x 3.3. pixel 에 이미지를 올릴 수 없게 만들었다.

가능하면 절대좌표를 주지 않게끔 제약을 가했다. 

아항. 스마트폰, 태블릿, 크롬북

해상도가 다르니까 절대좌표계를 사용하지 못하게 했다.

기본적으로 가상좌표계를 사용하게 한다.

젠장, 이 설명을 안해줘서 한참을 해맸다.

 

UI 아키텍처 설명도 어렵다.

State Machine 이야기가 나오고, Event, Layering 이야기가 벌써부터 나온다.

친절하게 설명되어 있지도 않다.

 

흐음, 알겠어. 이젠 디자인툴로 화면그리기 어렵겠군.

복잡한 화면을 그리지 말라는 이야기다.

 

Flutter

Flutter UI Architecture

Flutter UI 도 마찬가지다. 

까만 화면에 로그만 쳐다보면서 개발하던 서버개발자에게 "렌더링 머신"이란 진짜 생소한 개념이다.

화면 하나 그려보면서 시작하게 하지 않고, 어려운 아키텍쳐부터 이야기한다.

젠장, Java VM 만 쳐다보던 개발자에겐 생소한 개념이다.

일단 부딪혀 봐야 알겠지.

샘플 코드를 만들어 보자.

 

Native or Flutter

Android 샘플코드를 찾아본다.

Native는 어렵다. 너무 많은 걸 알려준다.

오랜 시간 자유도가 높기 때문이다.

이런 거 다 필요없고, 당장 쓸 거만 알려주면 좋은데...

책을 찾아봐도 그런 거 알려주는 책이 없다. 쩝쩝.

 

Flutter 샘플코드를 찾아본다.

이것도 뭔가 복잡하다.

그런데 뭔가 쉬운 규칙이 보인다.

만들어진지 얼마 안되다 보니, 자유도가 별로 없다.

그냥 중첩코드를 열심히 쓰면 된다.

 

Hello World를 둘 다 찍어본 다음 결정한다.

Flutter 로 간다.

 

내가 뭐 복잡한 코딩을 할 것도 아니고,

그냥 CRUD 정도에 Chatting 이 전부인데.

그 이상 복잡한 건 만들지 말자.

 

개인앱으로 엄청 복잡한 기업앱을 만들진 않을 거다.

그걸 만들어야 할 때면 그냥 WebView를 써서 웹앱으로 만들거라.

 

생각이 좁혀진다.

너무 대단한 것만 안만들면 된다.

대단한 건 젊은 친구들 몫으로 남겨두자.

나는 그냥 게시판 기술의 확장판 정도만 만들자.

복잡한 건 서버에서 처리하면 되지.

 

마음이 편해진다.

그렇게 Flutter를 선택했다.

 

끝.

댓글