[Android Studio]배달의 민족 하단바 구현하기 with splash page, fade out
·
안드로이드 프로그래밍📱/Projects📲
저번 주에 했었던 네비게이션 바를 응용하여 배달의 민족 앱을 통해 연습을 해보았다!(참고로 그냥 화면 캡쳐해서 연습용임!!!)  1단계: build.gradle에서 필요한 라이브러리 추가 implementation("com.google.android.material:material:1.10.0") 위와 같이 추가하면 된다. 추가하는 이유는 하단 네비게이션 바를 사용하려면 Material Components 라이브러리가 필요해. 이 라이브러리가 없으면 BottomNavigationView를 사용할 수 없기 때문이다. 2단계:activity_main.xml에BottomNavigationView추가하기하단에 표시할 네비게이션 바를 화면에 표시할 UI를 만들어야 하기 때문! 나는 아래와 같이 구성했다.Frame..
[AndroidStudio] 네비게이션을 활용하는 방법 with kotlin
·
안드로이드 프로그래밍📱/Projects📲
오늘은 앱 개발을 하다보면 가장 많이 사용하게 되는 네비게이션을 하는 방법을 알아보겠다.참고로!!!!!! 이건 본격적인 앱 개발을 하기 전 만드는게 좋다! 안그러면 헷갈리고 복잡하게 느껴질 수 있다. 꼭 본격적으로 xml 구성 전, 미리 구성하는 것을 매우 추천한다.(경험담이다)  1. build.gradle 에 라이브러리 추가 dependencies { implementation("androidx.navigation:navigation-fragment-ktx:2.7.6") implementation("androidx.navigation:navigation-ui-ktx:2.7.6") implementation("com.google.android.material:material:1.10.0..
[AndroidStudio] ConstraintLayout 복습
·
안드로이드 프로그래밍📱/XML 📃 코드 정리
컨스트레인트는 쉽게 말해, 화면에 배치되는 위젯들 사이에 간단한 제약조건을 만들어 준다고 생각하여 된다."xml 코드로 제어하기보다는, xml 디자인"에서 배치한다고 생각하면 쉽다. 1) 화면을  ConstraintLayout으로 바꾸어야 한다! 여기서 변환 버튼을 누르면 기존 레이아웃에서 ConstraintLayout으로 변화한다! 변환시, 이런 경고문이 뜰 것이다. 경고문의 영어를 해독하면(from GPT)⚡ 설명이 기능은 현재 사용 중인 레이아웃(예: LinearLayout, RelativeLayout 등)을 ConstraintLayout으로 변환하여 성능을 최적화하고 중첩 레이아웃을 줄이는 역할을 한다.하지만 변환 과정에서 UI가 깨질 수도 있고, 코드에서 참조하는 레이아웃이 사라질 경우 컴파일 ..
[AndroidStudio] TableLayout 복습
·
안드로이드 프로그래밍📱/XML 📃 코드 정리
테이블 레이아웃에 대해 정리해보겠다. 쉽게 5가지를 기억하면 된다. 1.tableLayout 안에 tableRow를 통해 행의 수를 조절할 수 있다 2. 행 안에 열의 수는 TableRow안의 위젯수로 나타낸다. 3. layout_span은 열을 합쳐서 표시한다는 의미이다. 만약 2인 값을 가지면 셀2개를 합치게 된다. 4. layout_column은 지정된 열에 현재 위젯을 표시한다. 만약 2인 값을 가지면 셀 2개정도 띄워진 뒤, 셀이 위치한다. 5. stretchColumns는 테이블 레이아웃에 넣은 속성으로 만약 *를 넣으면 셀의 크기는 전체화면이 꽉 차는 모두 같은 크기로 확장한다.(꼭 필요할 때만 넣기!) xml 코드  ..
[AndroidStudio] RelativeLayout 복습
·
안드로이드 프로그래밍📱/XML 📃 코드 정리
주로 리니어 레이아웃을 통해 그래비티를 수직, 수평으로 배치를 했었기에, 다른 xml이 약해 방학 기간동안 정리보고 싶어서 이렇게 xml 코드를 복습해보고자 한다. 우선 릴렉티브레이아웃은 간단하게 요악해서 "기준"을 정하고 다른 것들은 기준에 맞춰서 배치한다고 생각하면 편하다.예시를 모두 살펴보자! 개념 정리밑의 그림을 보면 이해가 쉬울 것이다. 단, 궁금한 점은 above 위치에서 toLeftOf 의 alignTop 위에 놓고 싶다면 어떻게 해야할까? 정답은 xml 코드에도 있지만, above에 toLeftOf를 걸면 된다 즉 아래의 선 안에 적혀진 부분은 그대로 가면 되는 것이고, 적혀지지 않은 부분은 위와 같이 해결하면 된다. 기준을 모두 감싼 형태로 xml 코드를 구현해라 xml 코드만 기록하겠다..
[AndroidStudio] 축구 구단 역사 검색하기(easy.version)
·
안드로이드 프로그래밍📱/Projects📲
오늘은 과거 안드로이드 스튜디오 수업을 들었을 때, 제출했던 텀프로젝트에 대해 기록해보고자 한다.참고로 해당 앱은 예전에 만들어졌기에 난이도가 매우 쉽다. 나중에 보다 보완하고 기능을 추가해서 제대로 구현을 해보고자 한다. 사용한 기능은 이미 기존에 많이 언급한 것들이기에 오늘은 간단하게 xml, 자바코드로 설명을 하고자 한다. 참고로 수업은 자바코드로 배웠기에 이번 포스팅은 자바로 코드가 올라가지만, 보완할 프로젝트는 코틀린으로 제작할 예정이다:) xml 코드     이렇게 총 2개의 레이아웃만 사용한다! 그렇기에 아주 간단한 기능만을 가지고 ..
[Android Studio] 전자 액자 구현하기
·
안드로이드 프로그래밍📱/Projects📲
안드로이드 스튜디오에서 avd에 사진을 불러와서 보여주는 프로그램을 만들려고 한다. 우선 xml 코드를 구현해보자 1) mainActivity  2) fragment_photo.xml을 만든다참고로 File -> new -> fragment를 생성하면 코틀린 코드와,xml 두 개가 동시에 생성된다. 나는 이점을 이용해서 생성하였다.   3. avd에 갤러리 이미지를 추가!Device  explore(위치가 잘 안 보여서 shiftx2 한 뒤 검색해서 찾았다!)  이런식으로 sdCard 픽쳐스에 원하는 사진을 넣으면 된다! 나는 아무 사진이나 가져와서 넣었다!+ 이렇게 넣는다고 바로 avd 갤러리에 추가되면... 좋겠지만, avd를 다시 껐다가 켜야 보인다. 이를 꼭 참고해야한다. 다음 코드를 ..
[Kotlin] 클래스와 인스턴스
·
안드로이드 프로그래밍📱/Kotlin📲 개념
클래스, 인스턴스 어디서 많이 들어본 개념이다. 처음 c++에서 배웠을 때 어려워했던 개념인 객체에 대한 내용임을 알 수 있다. 그러면 코틀린에서도 어떻게 사용하는지 정리해보겠다. 가장 대중적으로 쓰이는 예시인 car를 이용해서 정리해보자class Car { var color : String = "" var speed : Int = 0 fun upSpeed(value : Int){ if(speed + value >= 200) speed = 200 else speed = speed + value } fun downSpeed(value : Int){ if(speed - value  위와 같은 코드를 통해 가볍게 복습을 할 수..
[Kotlin] 함수
·
안드로이드 프로그래밍📱/Kotlin📲 개념
자바와 c++과 유사하나 표현방식에 차이가 있어서 예시들을 통해 복습을 해보고자 한다.우선 선언방식에 크게 2가지가 있다.일반적 선언fun a(a:Int, b:Int):Int {return a + b} 간략한 선언fun a(a: Int, b: Int): Int = a+b//또는fun sum(a: Int, b:Int) = a+b 두개의 숫자를 입력받아서 덧셈, 뺄셈, 곱셉을 함수를 통해 출력하시오.xml  코드  코틀린 코드import android.os.Bundleimport android.view.Viewimport android.widget.Buttonimport android.widget.EditTextimport android.widget.TextV..
[Kotlin] 배열
·
안드로이드 프로그래밍📱/Kotlin📲 개념
배열의 경우, c++, java에서 많이 배웠을 것이기에 간단하게 남겨보겠다. 일차원 배열 선언 형식은 : Array(), arrayOf(), arrayOfNulls()이 있다.일차원 배열이차원 배열을 밑의 코드에서 코틀린으로 어떻게 구현하는지 살펴보면 좋다. var one = Array(4,{0}) //데이터 형식, 개수, {초깃값}//일차원 배열 선언 형식val numbers = arrayOf(4,5,7,3)val animals = arrayOf("A","B","C")//arrayOfNulls()은 빈배열로 선언//이차원 배열 선언 형식var numbers = Array(3, {IntArray(4)})//이차원 배열 대입var numbers = arrayOf(array1, array2, array3)..