iOS 개발자가 리액트 네이티브로 앱을 출시해보고 느낀점
리액트 네이티브 앱 출시
나는 국비 지원 교육을 통해 iOS 개발을 시작한 케이스다.
그런 내가 리액트 네이티브로 앱을 출시하게 된 이유는, iOS 개발이 Xcode를 기반으로 iOS 생태계 내에서 iOS 앱만을 만드는 폐쇄적인 개발 환경이었기 때문이다. 그렇게 iOS에만 집중하다 보니 점점 뭔가 갇혀 있다는 느낌이 들었다.
결국 취업을 하든, 프리랜서로 일하든, 장기적으로 봤을 때 iOS에만 국한되지 않고 개발 영역을 확장할 필요가 있다는 생각이 들었다. 물론 iOS 개발에 집중하는 것도 좋지만, 안드로이드를 멀리할 이유는 없다고 느꼈다.
나는 다른 개발 분야에도 흥미가 많은 사람이다. 웹 개발도 언젠가는 도전해 보고 싶다는 생각이 있다. 물론 지금 당장은 어렵겠지만 말이다.
그러한 생각들이 쌓이다 보니, iOS 외에 안드로이드 앱도 출시해 보고 싶다는 욕심이 생겼고, 그 결과 리액트 네이티브로 앱을 만들어 보기로 결심하게 되었다.
왜 리액트 네이티브인가?
"안드로이드 앱을 만들고 싶다면 굳이 리액트 네이티브가 아니어도 되지 않나?"라는 질문이 있을 수 있다. 예를 들면 네이티브 안드로이드 개발에 쓰이는 코틀린이나, 다른 크로스 플랫폼 프레임워크인 플러터도 있다.
그럼에도 불구하고 내가 리액트 네이티브를 선택한 이유는, 예전에 HTML, CSS, JavaScript를 아주 잠깐 배운 적이 있기 때문이다. 그 연장선에서 자연스럽게 리액트를 접하게 되었고, 리액트 네이티브를 사용하는 것이 진입 장벽이 낮게 느껴졌다.
리액트 네이티브로 앱을 만들며 느낀 점
iOS와 안드로이드 앱을 리액트 네이티브로 실제 출시해보면서 몇 가지 장단점을 느꼈다.
- 버그 및 오류가 많다iOS 네이티브 개발에 비해 리액트 네이티브에서는 버그가 자주 발생했고, 오류를 찾는 과정도 상대적으로 미흡하다는 느낌을 받았다.디버깅도 익숙하지 않아 어려움을 느꼈는데, 이건 내 실력 부족일 수도 있지만, 네이티브 개발 환경에 비해 디버깅 도구나 워크플로우가 아직 덜 정교하다는 생각도 들었다.
- UI/UX 이슈예를 들어 iOS와 안드로이드에서 X 버튼을 왼쪽 상단에 배치했을 때, iOS에서는 정확히 원하는 위치에 나타났지만, 안드로이드에서는 버튼이 살짝 위로 올라가거나 아래로 내려가서 보기 불편하거나, 심지어 화면 밖으로 나가는 경우도 있었다.리액트 네이티브로 크로스 플랫폼 앱을 만들면, 한 번의 코드로 두 플랫폼을 모두 지원할 수 있다는 환상을 가졌지만, 실제로는 UI/UX에서 미묘하게 위치나 스타일이 달라지는 문제가 자주 발생했고, 이를 일일이 수정해야 하는 번거로움이 있었다.
- 출시 준비의 이중 작업앱을 출시할 때, iOS와 안드로이드 각각에 맞춘 앱 아이콘, 스크린샷 등 리소스를 따로 준비해야 했기 때문에, 똑같은 작업을 두 번 해야 하는 부분이 존재했다.
결론
리액트 네이티브로 앱을 만들기 전에는 “하나의 코드로 두 플랫폼 앱을 만들 수 있다”는 막연한 기대가 있었지만, 실제로는 일부만 맞고, 일부는 틀리다는 걸 깨달았다.
리액트 네이티브는 분명 매력적인 도구이고, 크로스 플랫폼이라는 장점이 있지만, 실제 개발에서는 플랫폼 간 미묘한 차이와 버그, 디버깅의 어려움 등 여러 현실적인 장벽이 있다는 것을 느낄 수 있었다.
그럼에도 불구하고, 이 과정을 통해 iOS 개발에 국한되지 않고 시야를 넓힐 수 있었던 것, 그리고 두 플랫폼에서 앱을 출시했다는 경험 자체가 큰 의미였다고 생각한다.
댓글
댓글 쓰기