프로그래밍 13

[5가지 사랑의 언어] 연애 심리 테스트 앱 "얼마나 사랑해" 출시했습니다. 사랑에 대한 고뇌로 만들어진 앱

안녕하세요 제가 6/14일을 기준으로 구글 플레이 스토어에 앱을 하나 런칭했습니다. "5가지 사랑의 언어"를 인용하여 만든 앱입니다. "5가지 사랑의 언어"란 미국의 게리 채프먼이라는 작가가 출판하여 유명해진 책입니다. 5가지 사랑의 언어는 "인정하는 말", "함께하는 시간", "선물", "노력", "스킨쉽" 이라고 말하고 자신이 어떠한 사랑의 언어를 가지고 있는지 알아볼 수 있는 책입니다. . . . . . . . 이 앱을 개발한건 총 4일 정도 되는 것 같습니다. 기능은 별로 없지만 디자인 작업이 오래걸린 것 같습니다. 서론이 길었습니다. 이 앱을 갑자기 개발하게된 궁극적인 계기는 최근 우후죽순 생겨나는 연애 심리 테스트 페이지 때문입니다. 과학적인 근거가 없이 몇가지 질문만으로 너는 뭐고 나는 무슨..

[Android] BLE 통신 애플리케이션 개발하기 #2 주변 장치 검색 실습

** 소스코드 옮기는 과정에서 계속 띄어쓰기 및 대소문자가 뒤바뀌는 이슈가 있어서 직접 작성 혹은 수정하느라 이상한 오타가 있을 수 있습니다. 저번에 말씀드린 대로 주변 장치에서 Advertisement 라는 행위를 통해서 " 나 여기 경주최씨 충렬공파 37대손 최형배 입니다 " 라는 값들을 알리고 있다. 그러한 값들을 일단 싸그리 주워 담아야 한다. 블루투스 스캔을 하기위해서는 준비물이 필요합니다. AndroidManifest.xml에 두가지 permission을 줘야 합니다. 위의 permission은 커넥션과 페어링된 기기와 데이터 송수신을 사용하겠다는 권한이며, 아래의 permission은 기기 검색, 블루투스 설정등을 다루는데 필요합니다. android.permission.BLUETOOTH_AD..

[Swift] 기종별 해상도 맞추는 View resize ( Constraint 주지 않고 )

IOS 를 개발하고 기능이나 UI 를 거의다 끝냈다고 판단 했을때.... 어느정도 예상은 했지만 이렇게 심하게 뭉게질줄 몰랐습니다.... 미리미리 체크했어야 하는데 Android 의 경우 워낙 기종이 다양하기 때문에 이러한 해상도를 맞추는게 쉽지 않았을것 같았지만 또 의외로 Constraint view가 잘되어 있다고 생각합니다. Ios는 StoryBoard를 사용할때 또 이러한 Constraint 를 맞춰주는게 생각보다 좀 까다로운것 같았습니다. 물론 개념자체는 비슷했습니다. 기존에 Story Board 사용시 Constraint 없이 그냥 이것저것 붙여서 만들었기 때문에 처음으로 작은 Iphone으로 해상도를 맞추려고 한 순간 모든 틀이 무너졌습니다. 그리고 일일히 Constraint 를 주며 개발하..

[Swift] Argument Label 함수 Parameter 중간에 이름이?

Swift라는 언어를 급하게 배운것에 대한 폐해라고 생각합니다 ㅎ. 부끄럽기도 한 부분이지만 같은 햇갈림을 가지고 있을 사람들에게 조금이나마 도움이 되고자 작성을 합니다. 처음으로 이 문제에 대해서 생각한것은 Main class에서 UITableViewDataSource, UITableViewDelegate 를 extends 했을때 관심을 가지기 시작했다. 이중 UITableViewDataSource를 extends 할 시 아래와 같은 필수 구현 함수들이 나옵니다. func tableView(_ tableView : UITableView, cellForRowAt indexPath : IndexPath) { // tableView 에 표시할 셀을 요청하는 메서드 } func tableView(_ table..

[Swift] UITableView 스크롤시 값이 중복되는 현상

Swift 개발을 하면서 tableView 를 만드는 상황은 아마 매번 있지 않을까 싶습니다. 아직 초보자인 저로써는 UITableView를 만들면서 크나큰 난관에 봉착하였는데... 그건 바로 테이블 뷰의 크기를 미리 정해놓고 그 안에 값을 하나하나 추가하는 기능을 구현하는 과정에서 있었습니다. 제가 원한거는 10개의 테이블 row에서 현재 배열에 들어있는 값 하나만을 출력하고 싶었으나 . 안보이는 부분의 스크롤을 내리는 순간 그 밑에도 한개가 추가되고 계속 오르락 내리락 하면서 맨 윗칸 혹은 아랫칸에 정보가 씌여진다는 것 입니다. 이와 같이 row index 가 0 일때만 text 값을 입력해 주었는데 안보이는 tableview가 보이면서 데이터가 reload 되기 때문입니다 . 제가 이렇게 작성을 하..

[Swift] TextField, PickerView 가 있는 Alert 창 만들기

IoS의 장점 아닌 장점은 너무나 깔끔한 UI를 자랑한다는 것 입니다. 뭐랄까 독특한 방식으로 기존의 UI들을 대채하고 있는데 왜 다르게 했을까 하면서도 막상 사용하면 불편하지 않은 그런느낌? 아마도 그런느낌이 더 Swift라는 언어로 개발을 하는데 매력적인 부분으로 다가오는 것 같다. 안드로이드에서 커스텀Alert을 만드는건 너무나 쉬웠다. 그래서 이것저것 다 집어넣는게 쉬웠는데 왠지 모르게 IOS에서는 이것저것 집어넣는 Alert창을 만드는건 쉽지 않았다.... 차라리 하나의 컨트롤러를 만들어서 해버리면 쉬웠지만 내가 생각한 그런느낌은 아니었다... 결국 이 모든건 본인들의 라이브러리를 쓰라는 뜻이 아닐까 싶은데... 생각해보니 기존 IOS 앱들을 보면 다들 비슷하게 IOS고유의 스타일을 가지고 있는..

[Swift] NavigationController 사용시 코드로 Navigation Item 수정하기 & Swift 기본 이미지 사용하기(System Image)

IOS 프로그램을 사용할때 Navigation Controller의 필요성은 두말하면 입 아픈 수준입니다. Navigation Controller를 이용하여 화면 전환을 할때 let pushVC = self.storyboard?.instantiateViewController(withIdentifier: "loginVC") as! LoginController pushVC.dataReceived = self.bleManager.peripherals[indexPath.row].name self.navigationController?.pushViewController(pushVC, animated: true) 네비게이션 스택에 컨트롤러를 쌓는(push) 형식으로 맨위의 화면을 바꿔 줍니다. 예를들어 네비게이션 ..

[Swift] Cocoapods 이용하여 MAlert 라이브러리 사용하기

안녕하세요 오늘은 Xcode의 외부 라이브러리 설치 툴인 Cocoapods 를 이용하여 간단하게 Alert창을 띄워보도록 하겠습니다. 물론 Custom으로 띄워도 되지만 애니메이션이라던지 디자인 등등 신경써야할것도 많고 반복적으로 불러주어야 하니 Framework를 활용하기로 했습니다. 이전에 안드로이드에 KAlert이나 웹 에서 필수적인 SweetAlert을 사용하던걸 추억하여... 일단 먼저 CocoaPods를 다운받아야 합니다. Homebrew의 Xcode용 이라고 보시면 될듯합니다. 1. CocoaPods 설치 cocoapods.org/ CocoaPods.org CocoaPods is built with Ruby and is installable with the default Ruby availa..

[Swift] 형 변환 Character to Byte(UInt8) / Byte(UInt8) to Character

Swift에서는 유독 Character에 인색한것 같다는 생각이 든다.... 아직 내가 너무 실력이 부족하니 어쩔 수 없지만 너무 특별한 케이스가 실제 코딩하다가 필요하게되어 혹시 도움이 되실까 올려봅니다. Character -> Byte(UInt8) let character: Character = "o" let byte: UInt8 = String(character).utf8.map{UInt8($0)}[0] Byte(UInt8) -> Character let byte2: UInt8 = 10 let characterFromByte: Character = Character(UnicodeScalar(byte2)) Swift에서는 Character를 한글자 String으로 취급하는 수준인것 같습니다. Unic..

[Swift] Java 문법을 Swift에서 사용하기 - 배열,문자열 중간 추출 (System.arraycopy, .subString) 등

회사에서 Java 소스코드르 Swift로 변환 중인데 생각보다 많은 부분이 다른거 같아서 제가 알아보는거 공유합니다. 여러분들 검색에 걸리길 바라며... 프로그래밍을 하다보면 특정 배열이나 String을 자르거나 붙힐 필요가 생기기 마련입니다. 데이터를 파싱한다던가 글자를 바꿔줘야 할때 Java 문법을 알고 Swift 문법을 그걸 기반으로 검색을 해봤습니다. 1. JAVA System.arraycopy 아마도 많은 분들이 프로토콜 같은거 파싱할때 많이 쓰이실것 같습니다. Java int[] a = { 0, 1, 1, 2, 3, 5, 8, 13 }; int startIndex = 3; int length = 4; int[] b = new int[length]; System.arraycopy(a, start..