본문 바로가기

Android/Android Studio9

[안드로이드/Kotlin] Retrofit2 + okhttp 개념 서버 통신 라이브러리 OkHttp - REST API, Http통신을 간편하게 구현할 수 있도록 다양한 기능을 제공해주는 Java 오픈소스 라이브러리 - Retrofit 라이브러리의 베이스 Retrofit2 - Rest API 통신을 위한 라이브러리 - AsyncTask가 없이 Background스레드를 실행 -> CallBack을 통하여 Main Thread에서 UI를 업데이트 - OkHttp를 기반으로 더 안전하고 직관적으로 사용할 수 있게 만들어진 라이브러리 - Annotation사용으로 코드의 가독성이 좋고, 직관적인 설계 가능 - 통신 결과값을 JSON으로 변환해 줄 필요없이 바로 객체 대입 가능 - 결과값을 메인 스레드에서 바로 사용 가능 ✔️ okhttp의 경우 네트워크 Intercepter.. 2022. 6. 27.
[안드로이드/Kotlin] Thread개념 및 예제 프로그램 → 프로세스 → 스레드 Program (프로그램) - 파일이 저장 장치에 저장되어 있지만, 메모리에는 올라가 있지 않은 정적인 상태 - os가 프로그램에게 독립적인 메모리 공간을 할당하지 않아 실행되고 있지 않은 상태 - 그냥 실행 파일/코드라고 생각해도 될듯 Process (프로세스) - 운영체제로부터 자원을 할당받은 작업의 단위 - 실행되고 있는 컴퓨터 프로그램 - 실행 파일이 컴퓨터 메모리에 올라가있는 상태 Thread (스레드) - 하나의 실행 흐름 - 프로세스와는 다른 더 작은 실행 단위의 개념 : Single 스레드 : Multi 스레드 (하나의 프로세스가 여러 작업을 여러 스레드를 사용하여 동시에 처리. 각 task간 스위칭을 매우 빠르게) ❓프로세스와 스레드의 차이점 : os는 프.. 2022. 5. 19.
[안드로이드/Kotlin] Splash화면 만들기 Splash - 앱을 열 때 기본적으로 나타나는 화면 - 회사로고, 광고, 콘텐츠 등을 고정된 시간동안 표시하거나 or 앱이 완전히 로드되는 동안 사용자에게 잠시 보여지고 사라지는 화면 방식1) 핸들러를 이용해서 고정시간동안 splash화면을 보여주는 방식 → 이 방식은 무조건 고정시간동안 UX표시하므로 불필요하게 시간 뺏을 수도 있음 1. activity_splash.xml 파일 생성 2. SplashActivity.kt class SplashActivity : AppCompatActivity() { lateinit var binding : ActivitySplashBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(s.. 2022. 5. 19.
[안드로이드/Kotlin] ViewPager2 + TabLayout 사용 ViewPager - 한 화면에서 다음 화면으로 전환되는 화면 슬라이드 💻 2022. 5. 12.
[안드로이드/Kotlin] BottomNavigationView 사용, Fragment 전환 BottomNavigationView - 어플 하단의 아이콘을 눌렀을 때, 프래그먼트 전환을 해주는 위젯 1. menu폴더 생성 후 bottom_nav_menu.xml파일 생성 app:showAsAction="always" android:enabled="true" android:title="홈" tools:ignore="AlwaysShowAction" / 2. 각 메뉴 탭에 해당하는 Fragment의 xml파일 만들어주기 3. acitivity_main.xml파일 생성 - FrameLayout: 여러 개의 뷰들을 겹쳐서 배치 4. MainActivity.kt 작성 class MainActivity : AppCompatActivity() { lateinit var binding: ActivityMainBi.. 2022. 5. 12.
[안드로이드/Kotlin] ViewBinding 사용 ViewBinding - xml파일과 class파일을 연결해주는 기능 - xml상에 있는 파일들을 코틀린 코드에서 활용하기 위한 바인딩 작업 (메모리 상에 업로드) - NullPointException해결 - xml파일과 class파일을 연결하면서 코드가독성↑ 1. Gradle 선언 (모듈 단위 gradle파일) android{ viewBinding{ enabled true } ... } 2. viewBinding 전역변수로 선언 lateinit var binding: ActivityMainBinding // ↔ activity_main.xml 3. onCreate()함수에서 바인딩 초기화 해준다 override fun onCreate(savedInstance: Bundle?){ supser.onCrea.. 2022. 5. 12.