2022/08 8

[TIL] 22.08.25

공부한 것 부스트코스 - iOS 프로그래밍을 위한 스위프트 기초 알게된 것 1. 옵셔널 // someOptionalParm에 nil이 할당될 수 있음 func someFunction(someOptionalParam: Int?) { // .... } /// someOptionalParm에 nil이 할당될 수 없음 func someFunction(someOptionalParam: Int) { // .... } nil이 할당될 수 있는지 없는지를 표현 nil의 가능성을 명시적(코드)으로 표현 가능 옵셔널이 아닌 경우 nil 체크 없이 바로 사용 가능 nil로 인한 예외 상황을 최소화 2. 옵셔널 표현 방법 // 암시적 추출 옵셔널 var optionalValue: Int! = 10 switch optionVa..

💻 개발/TIL 2022.08.25

[TIL] 22.08.24

공부한 것 부스트코스 - iOS 프로그래밍을 위한 스위프트 기초 알게된 것 1. 매개변수 기본 값 func setUserInfo(name : String, age : Int, region : String = "Deajeon") {} 함수를 정의할 때 매개변수에 기본적으로 전달될 값을 미리 저장할 수 있음 기본 값을 갖는 매개변수는 매개변수 목록 중 맨 뒤에 위치하는 것이 좋음 2. 전달인자 레이블 // 내부에서는 매개변수 이름 func greeting(to friend : String, from me : String) { print("Hello, \(friend)!, my name is \(me)") } // 호출할 때는 전달인자 레이블 greeting(to : "doko", from : "kodo") ..

💻 개발/TIL 2022.08.24

[iOS / Swift] unable to dequeue a cell with identifier Cell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard

TableView를 사용하면서 Cell을 재사용하기 위해 extension으로 UITableViewDataSource를 재정의하고 빌드를 진행했다. extension ViewController : UITableViewDataSource { func tableView(_ tableView : UITableView, numberOfRowsInSection section : Int) -> Int { return self.tasks.count } func tableView(_ tableView : UITableView, cellForRowAt indexPath : IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdenti..

[Android / Gradle] mockup1/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: AAPT: error: failed to read PNG signature: file does not start with PNG signature.

인턴 기간 동안 개발한 앱을 배포하려고 앱 아이콘 이미지를 첨부하고 Gradle에서 debug -> release 로 변경하고 Build Apk 를 눌렀는데! 아래와 같은 오류가 떴다. mockup1/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: AAPT: error: failed to read PNG signature: file does not start with PNG signature. 서칭을 해보니까 Gradle 버젼이 맞지 않는다. 다른 문제다~ 이런 글들이 많은데 뭔가 이상했다. 지금 사용하고 있는 버젼이 7인데 4까지 낮춰야한다고? 괜히 건드렸다가 다른 오류로 터미널이 터질 것 같다는 생각에 첨부한 앱 아이콘 이미지를 살펴봤다. 파일명은 ic..

[NCSOFT] 2022 NC Summer Intern 후기 - 1부 (Feat. 우당탕탕 인턴 입사기)

모처럼 회고 글로 찾아왔다. 퍼듀 이후로 이쪽 게시판에서 쓰는 건 처음인데 (사실 작성 중인 비공개 게시글이 있다...^^) 오늘은 다음 주면 끝날 NC Summer Intern에 대한 글을 쓰려고 한다. 어떻게 알게 됐나요? 1학기에 인턴, 동아리, 교육 프로그램을 좀 알아보고 지원하던 중 2022 엔씨소프트 썸머 인턴이라는 글을 보게 됐고 사내 모바일 앱 개발이 눈에 들어왔다. 공고에 플러터의 역량이 기재되어 있는 것을 보아하니 플러터로 사내 앱을 개발하고 있음을 직감했고 안드로이드 뿐만 아니라 플러터 역시 관심 있었기에 해당 공고에 지원했다. 1차 - 서류 + 코테 전형 자소서 분량이 문항당 300자로 많지는 않았다. 1번은 평소에 관심 있었던 클린 아키텍쳐와 디자인 패턴을 중심으로 인턴에서 무엇을..

⛹️ 라이프/회고 2022.08.10 (2)

[Flutter] ModalBottomSheet가 키보드에 의해 가려지는 현상

블로그 내의 게시물은 PC 버전에 최적화 되어 있습니다. 오늘은 ModalBttomSheet를 사용하면서 발생했던 문제에 대해 적어보려고 합니다. ModalBottomSheet에 TextField를 사용하여 키보드로 사용자의 입력을 받으려고 했습니다. 하지만 ModalBottomSheet가 팝업된 키보드의 높이만큼 올라가지 않아서 ModalBottomSheet가 키보드에 가려지는 현상이 발생했습니다. 아래와 같은 상황입니다. 키보드가 팝업되면서 ModalBottomSheet를 가려 사용자가 입력한 텍스트를 확인할 수 없는 문제가 발생했습니다. ModalBottomSheet가 키보드에 의해 가려지는 현상 우선 ModalBottomSheet의 속성에 대해 분석했습니다. 그러던 중 isScrollContro..

💻 개발/Flutter 2022.08.09

[Android / Gradle] The current Gradle version is not compatible with the Kotlin Gradle plugin

오늘 수도권에 비가 엄청 내려서 재택을 하게 됐다. 사내 깃과 연동이 되어 있지 않아서 프로젝트를 새로 생성해서 빌드를 하는데 아래와 같은 오류가 발생했다. Gradle 버젼과 Kotlin Gradle Plugin 버젼이 맞지 않아 생기는 오류였다. 친절하게도 해결 방법을 알려준다. android/gradle/wrapper/gradle-wrapper.properties를 수정하면 된다. 알려준 해결 방법대로 버젼을 6.7.0에서 6.7.1로 변경했는데 정상적으로 빌드가 됐다. Gradle 버젼은 아래 링크에서 확인할 수 있다. Gradle Distributions services.gradle.org

[Flutter / Dart] What is Equatable?

블로그 내의 게시물은 PC 버전에 최적화 되어 있습니다. 오늘은 Equatable에 대해 알아보려고 합니다. BLoC에 대한 글을 쓰기 전에 BLoC에서 사용하는 Equatable에 대한 정리가 우선적이라고 생각했습니다. 바로 본론으로 들어가보죠! 아래 코드를 먼저 살펴보겠습니다. class Person { final int pid; final String name; final int age; Person(this.pid, this.name, this.age); } void main() { Person p1 = new Person(20221234, "kodo", 25); Person p2 = new Person(20221234, "kodo", 25); (p1 == p2) ? print("same") : ..

💻 개발/Flutter 2022.08.06