개발
-
Swift MVVM 패턴 Network -> Decode -> View개발/Swift 2021. 1. 12. 14:46
https://inf.run/V3b51 iOS Clean Architecture & MVVM: RxSwift 완전 정복 강의 | 덤벨로퍼 - 인프런덤벨로퍼 | Clean Architecture와 MVVM 패턴을 실무에서 적용할 수 있도록 설명하며, RxSwift, Concurrency 등 필수 기술을 다룹니다., iOS Clean Architecture & MVVM: RxSwift 완전 정복현업에서 Cleanwww.inflearn.com 네트워킹과 받아온 데이터를 모델로 디코딩 후에 테이블 뷰에 보여주는 간단한 예제이다.먼저 모델을 만든다.각 뉴스의 내용을 담을 Article, Article의 리스트 형태인 ArticleList 이다struct ArticleList : Codable { let ar..
-
Flutter - 스크롤 페이지네이션 구현하기개발/flutter 2021. 1. 5. 12:37
Flutter 스크롤 페이지네이션 구현하기 간단한 스크롤을 만들어 페이지 네이션을 구현해보려 한다. 기본적으로 scrollView 와 scroll controller 를 만들어 준다. 그후에 scrollController에 리스너 함수를 만들어줘야한다. 리스너 함수 페이지네이션이 작용하는 원리는 이렇다 현재 스크롤의 위치 >= 마지막 스크롤의 위치 그러면 마지막 스크롤의 위치에 같아졌을때 데이터를 더 불러오면 된다. if (scrollController.position.maxScrollExtent == scrollController.position.pixels) { projectListBloc.getMoreList(); } maxScrollExtent는 최대(마지막) 스크롤 위치이고 offset 이나 p..
-
ios 빌드 에러개발/flutter 2020. 12. 14. 17:02
flutter 에서 ios 빌드가 자꾸 fail 되고 하얀 화면만뜨는 현상 vscode 에서는 안되지만 xcode 에서는 빌드가 된다. pod폴더 삭제후 podinstall 시도 [!] Error installing FMDB [!] /usr/bin/git clone https://github.com/ccgus/fmdb.git /var/folders/mr/3y8xy9g934zbvrkmk_10hq440000gn/T/d20201214-19932-1m4zbfl --template= --single-branch --depth 1 --branch 2.7.5 Cloning into '/var/folders/mr/3y8xy9g934zbvrkmk_10hq440000gn/T/d20201214-19932-1m4zbfl'....
-
[Swift] Protocol & Delegate개발/Swift 2020. 11. 4. 16:30
Bird라는 슈퍼클래스에 fly() 기능을 넣어두고 Eagle이라는 자식 클래스에 Bird 클래스를 Inherit 한다고가정했을때 Penguin은 Bird 클래스를 상속 받지만 fly() 기능을 사용하면 안된다. AirPlane 을 구현할경우 fly를 사용하기 위해 Bird를 상속받아야하는 경우도 생긴다. 이때 프로토콜을 사용하다. protocol CanFly{ func fly() } 인터페이스 처럼 상세구현은 자식에서한다. class Eagle : Bird , CanFly{ func fly(){ print("FLY") } } protocol은 class 가 아닌 struct에서도 상속 받을수있다. Delegate Model - WeatherManager 클래스에서 우선 프로토콜을 만든다 protocol..
-
[Swift] API 네트워킹 , Json 파싱 하는법개발/Swift 2020. 11. 3. 18:55
openweathermap.org/ 실시간 날씨 데이터를 가져오는 간단한 예제이다. API 네트워킹 하기 다음은 기본 url 이다. "http://api.openweathermap.org/data/2.5/weather?units=metric&appid=3a395c05bd9d58055e42048436e96166" units 는 metric 단위로하고 (기본값으로 할경우 온도가 179 이렇게 나오므로 이해가 안감) appid 는 나의 APIKEY 이다. 회원가입하면 APIKEY 를 받을수있다. 이제 여기에 검색할때 마다 지역명을 쿼리 파라미터에 넣어줄거다. class WeatherManager { let weatherURL = "http://api.openweathermap.org/data/2.5/weath..
-
DEEP WORK 딥워크 - 집중력을 높이는방법개발/생각 2020. 10. 17. 19:35
이 책이 말하는 내용은 첫 번째로 몰입을 해야 하고 두 번째로는 몰입을 하려면 이렇게 하라는 간단한 내용을 다루고 있다. 나는 어렸을 때부터 주의가 산만해 학원이든 학교든 수업에 집중하지 못했고 많은 시간을 들여 공부해도 성적이 중간 이상을 넘었던 적이 없었다. 집중력이 낮은 탓에 책을 보려 해도 읽히지 않고 읽히지 않으니 재미가 생기지도 않았다. 그런 단점을 파악하고 집중력을 높이기 위해 또 지식을 얻기 위해 책 읽기 습관을 들이려 노력하고 있다. 이 책에서 여러 가지를 얘기하지만 나에게 와 닿았고 시도해보고 싶은 것은 세 가지가 있다. 1. 산만함을 극복하는 훈련 딥 워크에는 고도의 집중력이 필요하다 산만함은 집중력의 적이다. 평소에 산만한 행동을 해오던 나의 경우 집중력이 부족하며 평소에 계속 집중..
-
Flutter - GraphQL 에러 처리 방법개발/flutter 2020. 10. 14. 20:51
에러 핸들링 graphql client 를 사용하여 query() 메소드를 실행하면 리턴값 혹은 에러가 리턴이된다. 그 리턴된 내용은 QueryResult 에서 확인할수있다. 아래는 결과를 핸들링 하는 코드이다. String _handleReturn(QueryResult queryResult) { //에러가 있다면 exception을 throw 해주고 if (queryResult.hasException) { throw queryResult.exception; } //에러가 없다면 서버로 부터 받은 값을 파싱하여 리턴한다 final String url = queryResult.data['getSomething']; return url; } queryResult.execption 은 두가지의 예외로 나뉜다...
-
Flutter-grapqhQL 인자 값 넣어서 쿼리보내기개발/flutter 2020. 10. 13. 20:09
인자값 쿼리에 넣어서 보내기 쿼리를 보낼때 쿼리에 인자값을 넣어줘서 보내줘야할때가있다. 다음은 장바구니에 상품을 추가하는 api 인데 어떤 상품을 어떤 조건으로 넣을건지 서버에게 알려줘야 하기때문에 productQuery를 넣어줘야한다. String readAddCart(Map productQuery) => ''' mutation { addCart( input: $productQuery ) } '''; input 값에는 이런값들이 들어가야한다. Map toJson() { return { 'additionalInfo': json.encode(additionalInfo), 'reserveDate': json.encode(reserveDate), 'productId': json.encode(productId)..