개발 일지
-
텍본리더 개발 이슈 - 로딩바의 출력에 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..
-
백준 1547번 C++ 풀이백준 2018. 9. 6. 00:48
#include #include using namespace std; bool buffer[3]; void swap(int a, int b){ int temp = buffer[a]; buffer[a] = buffer[b]; buffer[b] = temp; } int main(int argc, const char * argv[]) { cin.tie(NULL); ios::sync_with_stdio(false); int n; buffer[0] = true; cin >> n; for (int i = 0; i > a >> b; swap(a-1, b-1); } for (int i = 0 ; i< 3; i++){ if(buffer[i]) cout
-
iOS 텍스트가 비었으면 확인 버튼 비활성하는 UIAlertController 생성iOS 2018. 9. 2. 09:32
텍스트가 비었으면 확인 버튼이 비활성화되는 텍스트뷰는 자주 사용되기에 UIAlertViewController을 상속해 생성하려고 했지만,해당 클래스가 상속을 지원하지 않기에, 익스텐션을 활용한 형태로 생성했습니다. extension UIViewController { func showInputDialog(title : String? = nil, message : String? = nil,placeholder : String? = nil , defaultText : String? = nil, confirm : ((String?)->Void)? = nil ) { //Creating UIAlertController and //Setting title and message for the alert dialog l..