ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 어린이플워치 짱이네
    카테고리 없음 2020. 1. 20. 15:13

    2년 전체 부지, 거의 매일 새해 목표에 들어가는 일이 있습니다. 그것은 IOS 개발아이맥에 맥북, 어린이폰, 어린이플워치, 어린이팟, 어린이패드, 에어팟, 심지어 비트헤드셋까지... 아이플기기는 거의 가지고 있지만 아이플에 관한 개발지식은 바닥에 가까워서 공부를 시작했습니다.최근에 듣던 IOS 앱 개발 초급 강좌를 모두 수강하고 다음 앱을 아래 본인으로 만들어 보기로 결심했습니다.이왕이면 좀 쓸 수 있는 것으로 생각하고, 점 앱 개발을 감정했습니다. 카카오미니로 매일 운세를 물어보는데, 아이플워치에서도 확인이 되면 좋겠다고 생각했어요.복잡한 운세가 아니라 흔히 오항상의 운세 본인에게만 만들려고 합니다.​


    IOS 앱 개발은 강좌를 들었지만 에기플워치 개발에 대해서는 전혀 모르고 있었다. 개발 문서와 Youtube를 바탕으로 그냥 대충 공부했습니다.


    >


    어린 아이플 워치 기본 프로젝트를 발생하자 내부 3개 개발 폴더로 나뉘는데,입니다.점 앱을 만드는데 별로 필요한 기능은 없다고 소견하고 바로 작업을 했습니다.


    >


    UI 설계는 IOS 기본 앱의 디자인과 작업 방식이 크게 다르지 않습니다.작업 때와 같지 않다고 느낀 점은 보동 스크롤 뷰 컴포넌트가 없고 보동 염주 연결로 붙이면 레이아웃이 길어 작성된다는 점? 별로 어려운 기능도 없고 푸시처리가 없기 때문에 다른 것도 작업하지 않습니다.


    >


    그렇게 완성된 아이플워치 UI 화면이 작아 특별한 기능이 없었고, UI 배치 디자인도 편리했습니다.​


    사실 클라이언트단을 고민하는 것보다 점 DB서버에 대해 가장 많이 고민했었습니다.공짜로 풀려난 운세 사이트에 로그인해 HTML을 파싱할지 점 API를 구매할지 아니면 점 DB 데이터를 모아 앱 내부에 넣어야 할지 고민 끝에 특정 점 사이트 내부의 JavaScript POST 통신을 발견하고 해당 주소에 접속해 점 데이터를 취득할 수 있었습니다.


    >


    크롬 개발자의 도구를 많이 받았습니다. 해당 툴을 이용해 js 스크립트 내부의 점 API 주소를 알아낼 수 있었습니다.그렇게 넣고 통신을 했는데도 에러!


    즉시 당시 네가 다른 세상 이야기이라고 생각하고 전달한 WWDC 20하나 5에서 발표된 ATS입니다.요약하면 ATS가 활성화되면 HTTP 통신이 안되고 SSL (TLSv 하나.2)이상을 지원해야 한다고 한다.얼마전에 앱 패킷 분석을 할 때 TLSv 하나.2이므로 복잡했지만 어느 정도 규약이기 때문이었습니다.)그러나 HTTP통신이 가능하게 예외 처리는 되었습니다.


    해당 예외처리를 하면!


    >


    정상적으로 데이터를 받을 수 있었습니다.


    추가로 네트워크 콜백단에서 UI 컴포넌트 데이터 조정이 안되고 메인 쓰레드로만 UI 데이터를 조정할 수 있어서 따로 처리를 해놨습니다.(내부 콜백에서는 self도 정확하게 달아야 한다!)


    1단 서버 통신과 UI설계만 하면 앱을 구동시킬 수 있습니다. 그러나 점을 보려고 생년월 1과 기타 상세 정보를 입력해야 되는데 그러기엔 에키풀 워치 화면이 자라 자귀 나무 작고 UI배치가 불가능이었습니다. 따라서 설정 부분은 앱에서 빼기 위해 에기플워치와 아이폰 앱의 데이터 공유에 대해서도 찾아보았습니다.예전에는 UserDefault로 주고 받았지만 요즘은 WCSession으로 주고 받는 것을 권장하는 것 같았습니다.하나 프로젝트 구성에서 보셨듯이 워치와 기본 앱은 분리되어 있어서 각 반에서 session.default를 통해 주고 delegate로 받을 수 있는 구조였습니다. 간단하지만 영어를 잘 못해서 꽤나 꽂아서 많이 날렸어요. ㅠㅠㅠ, 해당 세션에서 주고받으며 에키풀 워치 앱이 배경에 떨어지고 있어도 작동하고 파 1, 키위, 등도 나눌 수 있습니다. 해당 부분은 에기플워치의 생명주기를 공부하고 다시 한번 복습해야 합니다.​


    또한 화면이 커서 UI 배치도 어려워 감각이 없는 저에게는 힘들었습니다. 일단 배치를 했지만 해상도별로 UI 위치가 달라서 오토레이아웃으로 잡아야 하는데 오토레이아웃을 배워본 적이 없어서 오토레이아웃을 공부하고 개발하기 위해 잠시 홀드하기로 했습니다.


    >


    하나하나 소견보다 아이플워치 개발에 대해서는 어렵지 않았습니다. 하지만 역시 한국어로의 정보는 많이 부족하고, 아이폰의 개발실력이 아직 미숙해서 그곳에서 더 공부할 필요가 있을 것 같네요.​


    당신므 오래되서 대충 마무리 했어요 ( ́;ω;`)



    댓글

Designed by Tistory.