개발 일지
-
백준 2178번 C++ 풀이백준 2018. 10. 3. 20:31
#include #include #include using namespace std; int N, M; int buffer[1000][1000]; deque dq; struct Dir { int y, x; }; Dir moveDir[4] = {{1,0}, {-1, 0},{0, 1}, {0,-1}}; void BFS(){ int w = 0; if (dq.empty()){ return; } while (!dq.empty()){ int currentSize = dq.size(); w++; for (int i =0; i< currentSize; i++){ int x = dq.front().first; int y = dq.front().second; for (int j = 0; j< 4 ; j++){ int ne..
-
UITableView를 스냅킷으로 구현하면서 생겼던 이슈iOS 2018. 9. 30. 22:55
기본적으로 UITableView의 디폴트 셀의 크기는 44입니다. 아이패드든 아이폰이든 어느 기종이든지 그건 바뀌지가 않습니다. 따라서, 테이블뷰 셀을 짜면 어느 기종이라도 픽셀수와 보이는 모양새가 똑같아야 하는 게 정상입니다. 이를 기반으로 커스텀 셀을 작성하는데, 묘하게 자꾸 기종마다 만드는 모양새가 달라지는 것을 발견했습니다. 같은 아이폰 6s 시뮬레이터 사진입니다. 하나는 OS 12이고, 하나는 OS 9입니다. 같은 모양이 안 나오죠. 여기에 아이패드는 여백도 이상하게 나옵니다. 조사해본 결과...iOS 10? 부터 테이블뷰가 셀의 크기를 자발적으로 계산해서.. 하이트를 추론(?)한다는 사실을 알았습니다.저는 당연히 44 하이트 고정을 생각해서 스냅킷 컨스트레인트를 느슨하게 주었고,.. 그 결과 ..
-
텍본리더 개발 이슈 - 로딩바의 출력에 rxSwift를 도입iOS 2018. 9. 30. 22:28
텍스트 뷰어를 로딩할 때, NSAttributedString을 적절히 페이지 크기만큼 분할해 [NSRange] 형태로 내뱉는 연산을 하는 과정이 있었습니다. 이런 식으로 텍스트를 분할하는 것인데.. 이 과정에 시간이 많이 소모되어 로딩바를 보여줄 필요가 있었습니다.지금 개발상황에서는 2MB 기준으로 완전히 로딩하는 데 시간이 1분정도 걸립니다... 따라서 퍼센트로 표현해주는 로딩바가 필요했습니다. 대충 이런 느낌의 로딩바이죠. 처음에는 페이지 한장 한장씩 렌더링할 때마다 로딩프로세스를 업데이트하는 방식을 사용했습니다만,이 경우 너무 많이 유아이를 업데이트하는 문제가 있었습니다. 로딩바 자체가 기다리는 작업이 만흥ㄹ 때 필요한 것인데..로딩바의 업데이트가 자원을 많이 소모하는 것은 말이 안되는 문제였죠...
-
iOS 텍스트 뷰어 개발을 끝내고 검수를 넣으며iOS 2018. 9. 30. 21:53
아이폰 / 아이패드용 텍스트 뷰어의 개발...을 완료해서, 오늘 아침에 검수를 신청했습니다. 앱스토어의 악명높은 리뷰어(?)의 검수가 통과되면 출시가 될 것 같습니다. 포트폴리오 용 간단한 앱으로 무엇을 출시하는 것이 좋을까 생각하던 참에 텍스트 뷰어의 개발 및 출시를 결정하게 된 이유로는 몇 가지 요소가 작용했습니다. 서버가 붙어 있는 앱을 출시하려면 지속적으로 서버 요금이 발생할텐데, 계속 유지보수할 입장에서 서버비의 적자도 생각할 필요가 있었습니다. 뭐 광고로 충당하기엔 애드몹의 바닷물같이 짜디짠 수익을 이미 여러 경로(?)로 파악하고 있어서, 솔직히 현실성이 많이 없었구요. APNS 하나 송신하는데도 서버가 필요한데, 논서버로 할 수 있는 간단한 지속가능한 앱이 무엇일까..?하고 나온 게 텍본 뷰..
-
iOS 12 동작 변경사항iOS 2018. 9. 20. 18:10
iOS 12가 출시되었습니다. WWDC 2018과릴리즈 노트에서 대응해야 하는 사항을 정리했습니다. https://developer.apple.com/documentation/ios_release_notes/ios_12_release_notes/foundation_release_notes UserDefaults - synchronize() 를 사용할 필요가 없어집니다. UIWebview- 공식적으로 deprecated됩니다. WKWebview로 바꿔야 할 때가 왔습니다. (옛날 앱들 마이그레이션 하기 복잡해질 것 같습니다.) ENFORCEMENT OF APP TRANSPORT SECURITYApp Transport Security Settings 에서 Allow Arbitrary Loads in Web ..
-
Android Oreo 백그라운드 서비스 제한 이전 개발안드로이드 2018. 9. 20. 14:29
Oreo에서 백그라운드 서비스에 크게 제한이 걸리면서 해당 부분을 대응해야 할 필요성이 생겼습니다. 서포트 라이브러리의 JobIntentService가 오레오와 비 오레오를 캐치해서 처리해 주기에,JobIntentService를 이용해 처리하는 것도 연동을 시도해 보았습니다. 하지만 일단 JobIntentService는 루프를 돌며 지속적으로 서치하는 쪽에는 어울리지도 않고,무엇보다 어플리케이션이 DEAD 상태가 되면 죽어 버리더라고요. 차라리 포그라운드 상태로 전환하는 쪽으로 판단해서 해당방식으로 진행했습니다. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { NotificationManager notificationManager = (Notificatio..