SwiftUI

준비는 끝났다! 스위프트로 앱 개발을 시작해보자.

1년 1개월 전 밴쿠버에서 한국 오는 비행기에서
스위프트 기본 문법책을  절반 정도 보았었다.
그리고 오늘 다시 책을 폈는데
내 머릿속에 지우개가 있는 것 마냥  하나도
기억나질 않았다


제일 먼저 시작한 작업은
안드로이드 스튜디오를 설치하고
이동식 하드 디스크에 복사한 안드로이드 소스코드를 맥북에 복사 후
안드로이드 스튜디오에서 불러왔다.

맥OS와 윈도우에서 파일 처리하는 메커니즘이
다르진 않을까?라는 생각을 했는데
윈도우 기반에 개발했던 안드로이드 소스코드는
잘 로드되었다.

그런데 빌드 속도가 너무나 빨라서 당황했다.
기존에 사용하던 PC가 구입한 지 10년이 넘었지만
아무 문제없이 사용했었고
맥북을 사용하면서 기존 PC가 느리다는 것을 알게 되었다.

맥북 M1PRO 짱이다!!

9월 30일 저녁부터 10월 7일 오전까지
구글 플레이에 등록된 앱들을 모두 수정하였다.
회사일에 치여서 미루었던 일들이다.
안드로이드 12로 타켓팅하면서 바뀐 것들이 많아
개발자 문서와 구글링을 통해 처리하였다.

가장 큰 문제는 포그라운드 서비스 제한이었다.
이 문제를 해결하지 못하면 앞으로 2년 뒤에

내가 개발한 앱은 더 이상 쓸모가 없어지기 때문이었다.

안드로이드 12에서 배터리 최적화에서 제외시켰음에도

포그라운드 서비스 호출 시 오류가 발생하는 이유에

대해 삼성전자 개발자 지원 사이트에 문의도 해두었지만 답장이 없었고
며칠이 지난 어제 답장을 받았지만
해결책은 아니었고 좀 더 많은 정보를 보내달라는 메일이었다.



해결책을 찾았기에 원인을 찾았고 이유와 처리 방법을 답장으로 보냈다.

 

해결책은 우연히 찾았다.
안드로이드 12를 타켓팅할때
PendingIntent를 사용하는 경우 신규 추가된 플래그 값을 추가해주어야 하는데
그 작업을 한 후에 앱을 빌드해서
실행했는데 포그라운드 서비스가 정상적으로 올라오는 게 아닌가!!!!

포그라운드서비스 오류로 인해 

PendingIntent 플래그 미 설정 오류가 노출되지 않는 것이었다.

 

참으로 기쁜 하루였다.

이제 남은 건 스위프트 언어를 습득하는 일이다.
기존에 코틀린 언어와 파이썬 언어를 공부했고
코딩 연습도 했었기에 스위프트 언어가 낯설지는 않지만

스토리보드를 통한 스위프트 앱 개발은 낯설다.

그리고 애플에서 밀어주고 있는 swiftUI를 먼저 해야 할 것 같다.

내가 스토리보드를 통해 누군가가 개발한 앱을

유지 보수할 일은 없을 것이기 때문이다.

적어도 안드로이드와 IOS앱 개발을

회사일에서는 하고 싶지 않다.

맥 OS용 프로그램과 아이폰용 앱을

빨리 만들어보고 싶은 앱들이 있기 때문에
빨리 시도해보고 싶은데
너무 더디게 공부(?) 하고 있다.

새로운 무언가를 배우는 게
슬슬 귀찮아지는 것일까?

[안드로이드 12 관련글 더보기]

 

 

 

Leave a Reply

error: Content is protected !!