목록전체 글 (70)
Groo

여러분들은 혹시 Git 커밋에 여러 공동 작업자를 추가할 수 있다는 것을 알고 계셨나요? 보통은 Git 글로벌 설정에 자신의 이메일과 이름을 등록 해놓고 해당 계정에 한해서만 Git을 활용하고 계셨을 것입니다. 하지만 Git에서는 하나의 커밋에 여러 공동 작업자를 추가할 수 있는 기능을 제공하고 있습니다. 잠깐, 그런데 이 기능이 굳이 왜 필요할까요? 지금까지도 문제없이 Git을 잘 사용하고 있었는데 말이죠. 만약 여러분이 프로젝트를 진행하는 과정에서 팀원과 페어 프로그래밍을 한다고 예를 들어보겠습니다. A와 B가 열심히 페어 프로그래밍을 한 후 마침내 드라이버 역할을 맡았던 A가 Git에 커밋을 하려고 합니다. 느낌 오셨나요? 네 맞습니다. 이때 바로 Git에서 제공하는 공동 작업자 기능을 사용하면 A..

KMP 프로젝트를 생성하고 iOS 애플리케이션을 빌드했는데 아래처럼 오류가 발생했어요. 코드에는 문제가 없었고 시뮬레이터를 새로 설치해도 해결되지 않았어요. > Task :shared:linkDebugFrameworkIosX64 FAILED error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld invocation reported errors Please try to disable compiler caches and rerun the build. To disable compiler caches, add the following line to the gradle.properties file..

이번에는 플랫폼별로 UI를 다뤄볼게요. 안드로이드는 Jetpack Compose를 사용하고 iOS는 SwfitUI를 사용해요. 두 가지 모두 선언형 UI 프레임워크여서 서로가 비슷하다는 것을 많이 느끼실거에요. Android 우선 androidApp 모듈은 안드로이드 애플리케이션의 주체에요. 해당 모듈에서 MainActivity와 UI를 정의하고 shared 모듈에 접근하기도 하죠. MainActivity로 이동해서 greet 메서드를 호출하는 곳을 선택하고 코드 내부로 들어가보세요. 그리고 아래처럼 문자열 리스트를 반환 하도록 greet 메서드를 수정해보세요. fun greet(): List = buildList { add(if (Random.nextBoolean()) "Hi!" else "Hello!..

commonMain 모듈에는 각 플랫폼 모듈에서 공통으로 사용할 수 있는 코드가 포함되어 있어요. 하지만 해당 모듈은 각 플랫폼과 독립적으로 운영되도록 디자인 되어서 만약 여러분이 특정 플랫폼의 api를 해당 모듈에서 작성한다면 ide는 에러를 발생 시킬거에요. KMP 프로젝트를 생성하면 commonMain 모듈에 기본으로 Greeting.kt 파일이 추가되어 있을거에요. 내부 greet 함수에서 Java의 Random 클래스를 사용해보세요. 그러면 ide에서 해당 Random 클래스는 사용할 수 없다고 여러분께 말할거에요. commonMain 모듈에서는 순수 Kotlin으로만 코드를 작성할 수 있기 때문이죠. import java.util.Random fun greet(): String { val fi..