글

라벨이 앱인 게시물 표시

앱 출시는 어떤 과정으로 진행되는 것일까? (Android, iOS)

이미지
안녕하세요. 오늘은 제가 개발한 앱들을 중심으로 해서 실제 앱 출시가 어떤 과정으로 이뤄지는지를 간략히 소개해드릴까 합니다. 이 게시글은 전공자나 현업자보다는 취미로 앱을 출시하려 하시는 분들이나 단순히 궁금하신 분들을 초점으로 하여 작성된 게시글이고, 영상 자료와 달리 여러 부연 설명들이 들어갑니다. 혹시 틀린 부분이 있다면 댓글로 알려주시면 반영하겠습니다. 사실 어플을 출시하는 데에는 여러 다른 과정들이 필요합니다만, 이 게시글은 '출시' 과정을 초점으로 하여 설명드리겠습니다. 그리고 저는 Flutter, React Native, Unity를 사용해서 모바일 앱을 개발하며, 네이티브 영역은 따로 조금씩 건드리는 방식으로 개발합니다. 이 점도 참고해주시면 감사하겠습니다. 설명을 영상으로 보고 싶으신 분들은 아래 동영상 혹은 링크를 눌러주세요. 저의 개발자 유튜브 채널의 동영상입니다. https://youtu.be/L5sPALeWQro 0. 배경지식 Android의 경우엔 공식적으로 Java 또는 Kotlin이라는 언어를, iOS의 경우엔 공식적으로 Objective-C 또는 Swift라는 언어를 사용해서 개발하게 됩니다. 하지만 한 명의 인디 개발자가 각각의 OS에 각각 다른 언어를 써서 개발한다는 건 쉬운 일이 아닙니다. 또한 Android 기기와 iOS 기기의 특성이 약간씩 다르기 때문에 그에 맞춰 코드를 짜줘야 합니다. 그런데 구글과 페이스북, Unity에서 코드를 한 번만 써서 Android와 iOS에 동시 적용 가능하도록 하는 개발 엔진을 만들었습니다. 각각 Flutter, React Native, Unity입니다. Flutter와 React Native는 크로스 플랫폼(두 가지 이상의 OS를 개발할 수 있는 플랫폼)의 양대산맥이며, 각각의 장단점을 비교하는 글이나 영상은 다른 곳에 많이 나와있으니 궁금하신 분들은 직접 찾아보시길 추천드립니다. Unity는 게임에 특화된 개발엔진이며, Android와 iOS 외에도 STEAM, PS4,...

React Native 외부 패키지 설치

이미지
React Native의 장점이라 한다면 자신이 직접 Native 코드를 작성할 필요 없이 이미 만들어진 패키지를 설치해서 그대로 쓰면 된다는 것입니다. 이미 아시는 분들에겐 매우 쉬운, React Native에서의 패키지 설치 방법을 알려드릴까 합니다. 1) https://www.npmjs.com 홈페이지에서 원하는 패키지 찾기 2) 터미널에 'npm install (패키지 이름)' 형태로 입력 ( react-native link 는 react-native 버전이 0.60 미만인 경우에서만 진행 ) 2-1) iOS의 경우 cd ios를 한 뒤 pod install 명령어를 터미널에 입력 3) package.json 파일을 열어 dependencies 안에 패키지 이름이 제대로 들어있나 확인 4) 설치한 패키지의 파일을 import해준 뒤 npmjs.com 안 가이드라인대로 코드 작성 한꺼번에 패키지를 설치할 때는 'npm install (패키지 이름1) (패키지 이름2) ... (패키지 이름n)'의 형태로 입력해주시면 됩니다.

Flutter 외부 패키지 설치

이미지
Flutter의 장점이라 한다면 자신이 직접 Native 코드를 작성할 필요 없이 이미 만들어진 패키지를 설치해서 그대로 쓰면 된다는 것입니다. 이미 아시는 분들에겐 매우 쉬운, Flutter에서의 패키지 설치 방법을 알려드릴까 합니다. 1) pubspec.yaml 파일로 이동 2) pub.dev 홈페이지에서 원하는 패키지 찾기 3) pubspec.yaml의 dependencies 안에 원하는 패키지와 버전을 입력 (예: 'url_launcher: ^5.7.10', 버전들은 pub.dev 안에 자세히 나와 있습니다.) 4) flutter pub get 실행 (Android Studio를 사용하시는 분은 상단의 Pub get을 입력하시면 됩니다.) 4-1) iOS의 경우 cd ios를 한 뒤 pod install 명령어를 터미널에 입력 5) 설치한 패키지의 dart 파일을 import해준 뒤 pub.dev 안 가이드라인대로 코드 작성 (Android Studio의 경우, 아래 그림처럼 'Pubspec has been edited'라는 막대 바가 뜨는 경우가 있는데, 바로 Get dependencies를 누르면 정상적으로 동작합니다) 한꺼번에 패키지를 설치할 때는 그냥 여러 패키지를 엔터로 구분하여 작성하여 위 과정을 한 번만 진행해주시면 됩니다.

개인 모바일 앱 개발자가 사업자 등록 없이 인앱 결제를 도입할 수 있나요?

제가 알기로는, 현재로서는 Android와 iOS 모두 안 됩니다. 현재 한국에서는 수익이 0원일지라도, 개인 사업자로 등록을 하여 인앱 결제 수익을 얻어야 합니다. 저도 다른 방법을 구글링을 통해 많이 찾아보았지만, 안타깝게도 사업자 등록 없이는 인앱 결제를 도입할 수 없다고 하네요. 외국의 경우는 크게 제약을 받지 않는다고 들은 것 같은데, 한국에서는 사업자 등록을 해야 합니다. 기존에는 하지 않아도 수익을 얻을 수 있었지만, 2014년 즈음부터 바뀐 것으로 알고 있습니다. 인앱 광고는 이에 영향을 받지 않는다고 합니다만, 인앱 광고라 하여도 일정 수익 이상의 수익이 나게 되면 국세청에서 세금 납부 관련하여 연락이 올 수 있다고 합니다. 저도 현재 어플을 몇 개 출시했는데, 인앱 결제는 기능만 코드로 구현해놓은 상태입니다. 실제 출시에는 사업자 등록 없이 인앱 결제를 도입할 경우 반려 사유가 될 수 있고, 심하면 개발자 계정 정지를 받을 수도 있기 때문에 인앱 결제 기능을 주석 처리하여 출시합니다. 혹시 사업자 등록 없이 인앱 결제를 도입할 수 있는 방법을 알고 계시다면 댓글로 알려주시면 정말 감사하겠습니다. P.S. 개인개발자들을 모으는 전문 회사가 만약 있어서, 그곳에 자신의 어플을 위탁하여 그 회사의 수수료를 제한 나머지 수익을 얻게 하는 구조(?)가 있으면 어떨까 하는 생각을 해봅니다. 만약 이러한 것을 감수하고서라도 수익을 조금 내고싶은 개인개발자가 있다면 기꺼이 위탁하지 않을까 생각합니다. 물론 많은 수익이 보장된다면 직접 자신이 사업자등록을 하는 게 낫겠지만요. 제가 법은 전혀 몰라서 이게 문제가 될지 안 될지는 잘 모르겠습니다. 이상 헛소리였습니다.