안드로이드가 제일 어려울 줄이야

나는 자바 개발자로 개발을 시작하여 최근까지 약 10년간 안드로이드 개발자로 교육과 개발을 하고 있었다.
안드로이드는 2009년말에 시작해서 자연스럽게 새로운 개념들을 익혔고, 예전에 iOS앱도 2개 출시 경험이 있지만 이 때는 Objective-C라는 나랑 진짜 안 맞는 언어여서 엄청 재미가 없었다.
윈도우폰은 망했고.
이 글의 결론은 안드로이드가 가장 어려운 프레임워크인 것 같다라는 것이다.

Angular

최근에 웹사이트, 안드로이드, iOS 모두 제작하는 프로젝트에서 앵귤러6로 웹을 작성했다. 최근 유행하는 웹프레임워크인 React, Vue.js를 비롯해 Ruby, 파이썬 django, Angular 까지 튜토리얼을 따라하면서 나랑 맞는걸 찾아 봤다.

여기서 Angular를 고른 이유는 안드로이드 개발하는 느낌으로 개발이 가능했다. 많은 글 들 중에 TypeScript 때문에 앵귤러 진입장벽이 높다는 글을 보았는데 자바 개발자라서 그런지 쉽게 접근할 수 있었다.

가장 어려운 프레임워크 공부는 책 3권 + 온라인 e-book, 각종 동영상, 블로그 등을 3주 정도 공부하면서 프로토타입을 작성했다. 이 때가 가장 힘든 것 같다. 일단 전체적으로 어느 정도 감을 잡았을 때 느낀 것은 어라? 벌써 끝인가 였다. 안드로이드에 비해 프레임워크에서 알아야 하는 내용이 적었고 쉬웠다.

이렇게 만든 사이트가 이전에 포스팅했던 천하제일웃음대회다.
https://hello-android-bdaac.firebaseapp.com/

iOS

iOS는 Objective-C로 2개의 앱을 개발하다 접은 기억이 있다. 지금은 Swift 4.2 버전으로 그리고 AutoLayout을 사용하여 개발하고 있다. iOS 개발의 최대 난적은 XCode 였다. 안드로이드에 비해 툴에서 직접 값을 설정해야 하는 일이 많다 보니 툴 사용에 익숙해야 하는데, 툴 사용을 중심으로 알려주는 책이나 자료가 거의 없었다. 일단 프로토타입을 작성하면서 익혀야 한다. 역시 전체적인 감을 잡는데는 책과 동영상, 블로그, 직접 앱 프로토타입 작성을 3주 정도 시간을 들인 것 같다.

프레임워크에 대해서는 안드로이드에 비해 알아야 할 내용도 적고, 이건 백그라운드에 대해 신경쓸 필요도 없고. (원래 안되는게 많으니 좋다). 화면 구성 요소도 View와 ViewController로 안드로이드보다 단순하다. 레이아웃 작성은 드래그앤 드랍으로 쉽게 구현하고(물론 AutoLayout은 안 쉽다), 화면이 많은 앱은 스토리보드가 굉장히 직관적으로 전체 앱의 흐름을 파악하기 좋게 한다.

안드로이드처럼 Context니 Intent니 하는 프레임워크만의 어려운 개념이 거의 필요없다.

화면간에 데이터 전달? 그냥 직접 값을 꽂으면 된다.

손에 익으면 개발 속도는 안드로이드보다 더 빠를 것 같다.

결론

안드로이드를 공부했다면 이미 무지하게 복잡하고 어려운 프레임워크를 하나 알고 있는 것이다. 그러니 안드로이드를 공부했다면 다른 쪽 공부는 쉽게 할 수 있다.