개발
-
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..
-
[Flutter basic] stateless widget 과 stateful 위젯 사용법개발/flutter 2021. 7. 24. 15:07
지금 까지 Flutter 를 코드를 짤때 MyHomePage라는 class 안에서 코드를 작성 했었다. 그러나 실제로 사용할 앱을 만들때는 이것보다는 훨씬더 복잡하고 많은 코드가 필요할 것이다. 그러면 코드의 길이가 무수히 길어질 것이기 때문에 class를 분리한 후에 child: 에 넣어준다. 예를들어 page 별로 class 를 분리할수도 있고 한 page의 특정 부분을 따로 class를 분리 할수도 있다. 나의 경우 이런경우 class를 분리하여 구현한다. 1. 페이지 넘어가는 경우 2. 특정 UI를 재 사용 할 경우 3. 복잡한 기능이 들어간 경우 4. 기타 등등... 위의 유튜브 UI 를 보면 영상 / 타이틀&설명 / 다른영상 리스트 / 댓글리스트 이렇게 나뉠수 있을것이고 댓글리스트 에서도 댓글..