분류 전체보기
-
[Swift 기본]ARC 와 Weak vs Strong개발/Swift 2021. 10. 4. 19:50
ARC - Automatic Reference Counting 자동으로 메모리를 관리해주는 방식이다. 특징은 참조 카운팅이 0 이될때만 메모리에서 해제한다. 아래와 같이 프로퍼티 , 상수, 변수에 클래스 인스턴스를 할당하는걸 강한 참조라고 함 let sangsu = Person(name:"sangsu") var sangsu = Persion(name: "sangsu") let myFriend : Friend() myFriend.person = Person(name:"sangsu") 아래의 경우 참조 카운팅을 한번 보자. let test1 = Person(name:"simon") let test2 = test1 test1 = nil 위의 test1 상수는 nil값이 할당되어 참조가 사라졌지만 test2 상..
-
Localize + UserDefaults 사용하여 언어 설정 기능 구현 하기개발/Swift 2021. 9. 16. 15:51
Localizable 세팅 참고 : https://zeddios.tistory.com/368 앱 내의 언어설정을 위해 Localize 를 사용하고 해당 언어설정 상태를 앱 내부에 저장해두고 사용하기위해 UserDefaults를 사용했습니다. 첫번째로 Localize.setCurrentLanguage() 함수를 사용해 언어를 세팅해주는것입니다. @IBAction func onClickKorean(_ sender: Any) { Localize.setCurrentLanguage("ko") } @IBAction func onClickEnglish(_ sender: Any) { Localize.setCurrentLanguage("en") } "ko" "en" 같은 언어코드는 http://www.lingoes.ne..
-
[Flutter 기초] Future 개념과 사용방법 async/await,then개발/flutter 2021. 9. 5. 16:59
Modern Collection View 와 MVVM 패턴 가이드 [iOS] Modern Collection View & MVVM 패턴 가이드 - 인프런 | 강의 MVVM 패턴과 Modern Collection View를 사용해 네트워킹을 구현하고, 다양하고 동적인 Collection View를 자유자재로 다룰 수 있게 됩니다., - 강의 소개 | 인프런 www.inflearn.com Future 은 미래의 값을 의미합니다. 미래의 값은 무슨 말일까요? 비동기로 처리되어야 할 값을 의미합니다. 더 어려운 말이죠? 쉽게 예시를 들어봅니다. 카페에서 아메리카노를 주문합니다. 돈을내고 1분정도 기다리면 아메리카노를 받겠죠? 그러면 지금 기준으로 아메리카노는 Future 입니다. 1분 미래에 받을수 있기 때문입..
-
재사용 가능한 tableview cell nib만들기개발/Swift 2021. 9. 2. 18:53
tableview cell 을 하나 만들어두고 여려곳에서 쓰기위해 사용하는 tableview 에서 디자인을 구현하지않고 cell 만 따로 빼내서 디자인을 구현 하려한다. 디자인은 이렇게 대충 구현해두고 Class명을 지정해준다 이렇게 파일은 만들어둔 상태이다. 또 Identifier를 지정해준다. Class명과 꼭 같을 필요는없다. 이제 여기 HelpViewController 에서 아까 만들어둔 BoardTableViewCell (xib파일)을 사용할것이다. 그러려면 우선 tableview에 nib을 등록을 해줘야한다. @IBOutlet weak var faqTableView: UITableView! private func registerXib() { let nibName = UINib(nibName:..
-
expandable + dynamic height tableview cell 구현하기개발/Swift 2021. 9. 2. 18:24
데이터 값에 따라 유동적인 높이를 가진 Tableview를 구현 해야하고 그리고 해당 Tableview는 접기/펼치기 기능이 들어 있어야 할경우의 예시입니다. 우선 Tableview의 기본적인 구현 이 되어있다는 가정하에 진행합니다. 접기 펼치기 기능은 단순히 Row의(cell) 높이를 바꿔 주면 됩니다. heightForRowAt 함수를 통해 유동적으로 cell의 높이를 지정 해주면 됩니다. func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { print("heightForRowAt \(indexPath)") if helpViewModel.isSelectedCell(indexPath: index..
-
Flutter camera ios 권한 요청, 처리 하기개발/flutter 2021. 8. 25. 16:16
권한 요청에대한 기능을 수행하기 위해서 permission_handler 플러그인을 설치해야 합니다. 프로젝트의 다른 plugin 버전 때문에 4.x 버전을 사용했습니다. permission_handler: ^4.4.0+hotfix.4 해당 플러그인을 사용해 카메라 뿐만 아니라 다양한 디바이스에 권한을 요청, 관리할수 있습니다. 우선 ios 에서 podfile 에 세팅을 해줘야하는데 camera 의 경우 이렇게 해주면 됩니다. post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) ## dart: PermissionGroup.camera 'PE..
-
[Flutter기초] Navigator push/pop 과 페이지간 값 리턴하기개발/flutter 2021. 8. 8. 17:30
Modern Collection View 와 MVVM 패턴 가이드 [iOS] Modern Collection View & MVVM 패턴 가이드 - 인프런 | 강의 MVVM 패턴과 Modern Collection View를 사용해 네트워킹을 구현하고, 다양하고 동적인 Collection View를 자유자재로 다룰 수 있게 됩니다., - 강의 소개 | 인프런 www.inflearn.com 이 화면에서 다른 화면으로 전환을 하고싶을때 사용할수 있는 다양한 방식이있다. Tabbar을 사용할수도 있고 상태를 바꿔서(Stateful) 화면을 바꿀수 있지만 가장 간단하고 많이쓰이는것은 Navigator를 사용하는것이다. Navigator - push / pop 을 사용하여 새로운 페이지를 위에 얹거나 뺄수있다. 그럼..
-
Realm swift struct 타입, List타입 수정 하는법개발/Swift 2021. 8. 3. 17:46
내부 저장소에 리스트를 저장해야할 일이생겼다. moduleList 라는 [ModuleModel] 배열을 저장하고 꺼내 쓰고 수정하는것이 목적이다. 우선 ModuleModel 은 struct타입이다. struct ModuleModel { let id: String! let title: String! } struct ModuleModel { let id: String! let title: String! } struct은 사실 realm에 넣을수 없다. Object 타입만 사용 가능하다. 대신에 비슷한 Object 클래스를 만들어준후 넣어줄수 있다. 그리고 struct가 필요한 상황에 타입을 바꿔주는 방법으로 구현한다. class RealmModuleModel : Object { @objc dynamic va..