왕초보 안드로이드 앱 개발 도전기 9

8. Unit 2 project: Art Space (아트 갤러리, 이미지 뷰어)

Art space 는 일반적으로 예술작품을 전시하거나 예술활동이 이루어지는 장소를 의미합니다. 예를 들어 미술관, 갤러리, 스튜디오 등이 그에 속합니다. Unit 2 project 는 Art space app 을 만드는 것인데, 쉽게 말해서 가지고 있는 사진작품이나 그림을 띄워주는 이미지 뷰어를 만드는 것입니다. 이번에는 가이드가 상세하지 않아서 조금 어렵고 시간이 걸리기는 했지만 기존에 만들어둔 코드나 chatGPT 와의 대화를 통하여 app 제작을 무사히 마칠 수 있었습니다.  아래와 같은 UI로 앱을 만들었습니다. 작품명, 작가명은 기능 확인을 위해 임의로 지정하였습니다. 프로젝트를 하면서 배운 점들 중 중요한 몇 가지는 아래와 같습니다. Previous, Next 버튼을 통한 사진, 제목, 작가,..

7. 람다함수(lambda)

람다함수의 정의와 사용방법람다함수는 코틀린 이외의 많은 프로그래밍 언어에서 제공하는 익명 함수 정의 기법입니다.람다함수를 이용하는 이유는 코드의 간결성과 가독성을 위해서입니다.  아래에 정의한 sum 함수는 일반적인 함수 정의 방법을 이용한 것입니다. 세 줄의 코딩이 필요합니다.이에 반해 sum2 함수는 람다함수로 선언한 것입니다. 한 줄로 함수정의가 끝납니다. sum2 는 정수 2개를 input 으로 받아서 정수를 반환하며 산식은 no1+no2 로 정의된다고 작성한 것입니다.변수추론 기능을 이용하면 이를 sum3 의 형태로 조금 더 간단히 작성할 수 있습니다.세 가지 방법 모두 결과값은 3으로 동일합니다.fun main() {    fun sum(no1: Int, no2: Int): Int {     ..

6. Unit 2 practice: click behavior - lemonade

Unit 2 연습문제인 lemonade app 을 만들어보았습니다. 앞의 Dice Roller 를 참고하며 만들다보니 버튼 클릭시 화면 전환 기능 구현은 어렵지 않았는데, 오히려 UI 모양을 구현하는 것이 더 시간이 많이 걸리고 어려웠습니다.   그래도 app 제작 과정에서 배운 것이 몇 가지 있습니다.Button 은 아래와 같이 색깔과 모양을 지정할 수 있습니다. chat-GPT와 Gemini의 도움을 받으면서도 RoundedCornerShape 찾느라 한 참 걸린 것 같습니다.Button(    colors = ...    shape = RoundedCornerShape(32.dp)Button 에 text 대신 image 를 넣을 수도 있는데, 저는 위 아래 Text와의 배치를 고민하다가 Box 로 ..

5. Kotlin 클래스(class)

객체 지향 언어에서는 클래스를 이해하는 것이 중요하다고 하는데, 처음부터 개념이 잘 이해되지는 않았습니다. 다만, 기존에 사용했던 Int, String 같은 데이터 유형도 클래스의 하나라고 하니 좀 친숙한 느낌이 들었고, codelab 의 SmartDevice 예시를 따라가면서 이해도를 높일 수 있었습니다.  1. 개요 클래스(class)는 객체 지향 프로그래밍(Object-Oriented Programming, OOP)의 중요한 개념으로 객체를 생성하기 위한 정보를 담고 있는 청사진입니다. Object 와 Class instance 는 구분없이 사용되는데, 객체로 번역되며, 특정 정보를 담고 있는 개별 데이터라고 보면 될 것 같습니다. 클래스(class) 는 다음의 세가지로 구성됩니다.속성(Proper..

4. Kotlin 조건문

Kotlin 에서 조건문 문법은 다음과 같습니다. 1. if 조건문1.1 statement(문) 형태    if (condition1) {    body1    } else if (condition2) {    body2    } else if (condition3) {    body3    } else {    body4    } 1.2 expression(식) 형태    val name =        if (condition1) expression1         else if (condition2) expression2        else expresssion3 if 조건문은 길고 복잡하게 보이기 때문에 조건문이 여러 개인 경우 when 을 사용하는 것이 권장됩니다.  2. when 조건문2.1..

3. Unit 1 연습문제

Unit 1 - pathway 3 의 연습문제를 풀어보았습니다. column, row, box 의 개념을 이해할 수 있었습니다. compose quadrant 가 가장 어려운 문제였는데, 여전히 MainActivity 하에 ...Theme 으로 생성되는 부분이나, modifier 순서에 따라 결과가 달라지는 부분은 잘 이해하지 못하였습니다.      Compose Quadrant coding 주요 부분class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() ..

2. 안드로이드 스튜디오 설치 및 스마트폰 연결

안드로이드 스튜디오는 아래와 같이 홈페이지에서 다운받을 수 있습니다.  설치 과정 및 시스템 요구사양 등은 여기 링크된 training course 에 자세히 나와 있으니 참고하시기 바랍니다. 해당 과정에 따라 안드로이드 스튜디오를 설치하고 나면 Jetpack Compose 에서 사전에 제공된 UI template 을 이용하여 앱을 만들 수 있습니다. Empty Activity template 을 이용해 처음 앱을 만들면 Preview 화면이나 Emulator 창에 "Hello, Android!" 를 띄워주는 단순한 앱을 만들 수 있고(C언어나 Python에서 Hello, world를 출력하는 것으로 첫 프로그램을 시작하는 것과 비슷합니다), 강의를 따라가면 이 앱의 코드를 변형하여 한 화면에서 정보를 ..

1. Kotlin 소개

안드로이드 앱을 개발하기 위해서는 안드로이드 스튜디오를 설치해야 합니다.안드로이드 스튜디오는 안드로이드 개발자 웹에서 다운로드를 받을 수 있는데, 해당 사이트에서는 수준별 강좌가 제공되어 있어서 초보자도 시간과 노력을 들이면 자습이 가능합니다. 초보자 코스(Android Basics with Compose)를 들어가 보면 안드로이드 스튜디오 설치에 앞서 Kotlin 이라는 프로그래밍 언어 소개 과정이 있어서 Kotlin 에 대한 맛보기 정도를 해볼 수 있게 되어 있습니다. Kotlin 에 대해 ChatGPT 에 물어보니 아래와 같이 설명을 해줍니다. 2017년부터 Google 이 Kotlin 을 Android 공식 프로그래밍 언어로 채택했다는 부분이 중요한 것 같습니다. Kotlin은 JetBrains에..

40대 아저씨의 안드로이드 앱 개발 도전기

저는 내일 모레 나이 50을 바라보고 있는 평범한 아저씨입니다. 사정이 있어서 직장은 쉬고 있는 상황인데, 그동안 해왔던 일 말고 내가 잘 할 수 있는 부분이 뭐가 있을까,어떻게 하면 생산적인 삶을 살 수 있을까 고민을 하고 있습니다. 특히, 최근 통계(보험개발원 제10회 경험생명표)에 의한 남자 평균수명이 85세가 넘는 것을 생각한다면앞으로 30년 이상을 즐겁게 할 수 있는 일을 찾아야겠다고 생각해봅니다.  몇 가지 고민하고 있는 제 자신의 평생 프로젝트(lifelong project) 중 하나로 안드로이드 앱 개발에 도전해보고려 합니다.프로그래밍 경험은 거의 없다시피 한 왕초보 수준이기는 하지만, 엑셀 매크로나 비주얼 베이직을 사용해본 적은 있어서시간과 노력을 들이면 할 수 있지 않을까 생각하여 과감..