2024 GDSC Soultion Challenge 진행을 위해 팀원들과 아이디어 논의 결과, 모바일 앱 서비스를 만들자는 결론이 나왔다. 그동안 React로 웹 개발 프로젝트를 해왔던 나는 크로스 플랫폼 앱 개발이 가능한 React Native를 활용하여 앱을 만들어 보고자 한다.
1. 네이티브 앱 VS 크로스 플랫폼 앱
💛네이티브 앱
- 각 운영체제에 맞춰 개발 및 운영이 필요하여 각 앱을 개발하는 플랫폼도 다르고 사용하는 프로그래밍 언어도 다름
- 사실상 두 개의 앱을 만드는 것과 같아 앱 유지 보수와 업데이트를 할 때도 또한 두 배의 노력이 필요
- 네이티브 앱 기술
- Android: 안드로이드 스튜디오, Kotilin
- iOS: XCode, Swift
💛크로스 플랫폼 앱
- 크로스 플랫폼 앱은 하나의 소스 코드로 Android, iOS에서 똑같이 작동하는 앱으로 네이티브 개발의 한계점을 개선하고자 탄생
- 크로스플랫폼 앱 하나가 있다면 Android와 iOS 운영 체제를 위해 동시에 개발 및 운영할 수 있다는 장점이 있음
- 크로스 플랫폼 앱 기술
- React Native: 메타(페이스북)에서 2015년 공개
- Flutter: 구글에서 2017년 공식 릴리즈
2. React Native란?
- 크로스 플랫폼 앱을 구현하는 JavaScript 기반 프레임워크로 React를 기반으로 만들어짐
- Javascript 기반 라이브러리, npm을 사용하면서 iOS, Android 앱을 동시에 만들 수 있다는 큰 장점이 있음 → 내가 React Native로 앱을 개발하려는 이유!
💛원리
- React Native는 런타임중에 JS브릿지를 생성하고 JavaScript 코드를 네이티브 코드로 변환해서 컴파일함
- 브릿지를 통해 네이티브 UI에 접근하는 원리로 Objective-C API로 iOS 컴포넌트를, 자바 API로 안드로이드 컴포넌트를 렌더링 가능
- iOS, Android 플랫폼의 표준 렌더링 API를 사용하기 때문에 엔드 유저에게 네이티브 UI를 그대로 제공 가능함
💛개발환경
- JavaScript를 개발할 때 사용하는 코드 에디터를 그대로 사용 가능 (나의 경우 VsCode)
3. React Native를 사용하는 이유
💛 효율적인 개발 및 관리와 뛰어난 성능 제공
- 단일 코드 베이스로 개발 속도와 업무 효율성 모두 높아짐
- JavaScript 코드를 네이티브 코드로 변환하는 역할을 하는 모듈을 통해 빠른 성능을 지원
💛개발 커뮤니티 활성화
💛Over-the-Air 업데이트
- React Native 앱은 OTA(Over-the-Air) 업데이트를 사용해 업데이트를 빠르게 진행할 수 있어 이는 버그 수정이나 디자인 변경을 할 때 유용하게 사용