Android Studio / Android APP [폴더구조 / 제작단계 / 실행순서]
Activity / View
ImageView
CompoundButton (CheckBox(multiple choice) / ToggleButton / Switch / RadioButton(single choice)) / RelativeLayout / FrameLayout / TableLayout / GridL
EditText / 사용자 알림
Menu (OptionMenu / ContextMenu / PopupMenu)
AdapterView / Adapter
ListViewHolder / RecyclerView
ViewPager / Fragment
Material Design
Material Design
Intent
Thread : 비동기 작업 (Asynch Task)
Open API
Internal Storage / External Storage / SharedPreference / SQLite DataBase
Notification
Service
Map API
Camera App 이용
③ CameraX API In the UI for this codelab, we use the following: A CameraX PreviewView (to preview camera image/video). 시작했을때 카메라의 셔터가 열려야함 (캡쳐 전까지 보여줘야함) A standard button to control image capture. ...
① Butterkinfe (외부 Library) /② ViewBinding /③ DataBinding/ LifecycleMethod
JSON - GSON
Retrofit(squareup)
Google Firebase
GIT으로 형상관리 하는법
화면 작업 / 이벤트 처리 작업 / Data 제어 작업 (크게 보면 세 가지 작업 반복) Archtecture pattern 없이 그냥 작성하는 Flat Design 방식 1) 장점 : 구조가 간단하여 구현하기 쉽고 하나의 문서에 대부분의 기능코드와 UI 코드가 있어서 전체 기능이 한 눈에 들어옴 2) 단점 : Activity, Fragment에 모든...
🚨 데이터 바인딩에서는 뷰바인딩과 다르게 레이아웃 xml 파일의 최상위 요소인 root가 이어야만 바인딩 클래스가 만들어짐 이때, 은 view가 아닌 객체 은 두 가지 영역으로 나뉨 **ⓐ 에서는 레이아웃뷰와 바인딩을 할 데이터 변수를 선언하는 영역 ⓑ Viewgroup, 화면에 보여질 뷰가 놓일 자리** TextView에는 Int형 값을 줄 수가...
LiveData : ObservableXXX 와는 다르게 lifecycle에 따라 효율적으로 UI를 갱신 LiveData는 추상클래스이기때문에 객체 생성 불가 MutableLiveData 이용
아직 Java에는 없지만 Kotlin에는 있는 내용 thread 하나당 여러 개의 작업을 하는것 화구(CPU)가 하나에 한 요리만 할 수 있기 때문에 한 요리만 하는 요리사(thread)가 번갈아가면서 사용하는 상황이라면, Coroutine은 요리사(thread) 하나가 요리를 여러 개 가지고 있다가 화구에 번갈아가면서 사용하는 느낌 Coroutine ...
Layout 🔗 -> jpg 🖼️-> pdf 💾 -> Print 🖨️ Layout → .jpg 변환할 레이아웃을 가져온다. 나는 A4 사이즈로 미리 작업한 xml 파일 전체 레이아웃을 변환하고 싶었기 때문에 root 레이아웃을 가져왔다. 이 블로그를 참고하
메인액티비티에서 와이파이의 연결상태를 체크하여 아이콘으로 보여주고, 하위 프래그먼트에서 와이파이 연결이 안될 경우 다이얼로그를 띄워 접근이 불가능하도록 만들어야 했다.네트워크 상태에 대한 이벤트를 받기 위해 ConnectivityManager.registerNetwor
인터넷 접근을 막아둔 상태에서 현재 시각이 필요한 상황.gps를 이용해 현재위치를 가져오고 현재위치의 경도 값으로 시간을 가져오기로 했다.1\. Manifest에 위치 기반 서비스를 이용하기 위한 permission 추가2\. FINE_LOCATION에 접근하기 위해
1. 기기 내부 음원 이용 ① 먼저 기기 내부에 있는 음원의 uri를 알기 위해 다음 메소드를 이용한다. ② 로그에서 원하는 음원의 uri를 확인한다. ③ 음원을 플레이하는 메소드를 선언하고, 원하는 곳에서 호출한다. mediaPlayer 변수의 경우 미리 전역변수 null값으로 초기화해두었다. 리소스 낭비를 막기위해서 해당 액티비티 혹은 프래그먼트...
SearchView에서는 커스텀이 불가능한 부분이 있어 EditText를 이용하여 ListView의 제목을 검색할 수 있도록 만들어 보았다.
SeekBar를 커스텀하고 보니 뒤에 배경이 있는 것처럼 구분되어 있었다.SeekBar에 android:splitTrack="false" 속성을 추가하면,배경같이 thumb와 구분되던 부분이 사라진다.
미리 클래스로 작성해주고 필요한 곳에서 사용할 수 있도록 했다. (메소드만 만들어서 사용해도 무관)사전에 저장해 놓을 파일 경로를 통해 File 객체를 만들고 listFiles()로 디렉토리의 파일리스트를 불러온다.나의 경우 파일이 여러 종류가 저장되어있고 파일명 끝에
Pair로 리턴을 받으므로 first는 가로값, second는 세로값도움받은 곳https://featherwing.tistory.com/22
Java언어를 개선시킨 표기법만 다른 함수형 프로그래밍 언어독자적인 언어체계는 아님
객체지향 (Obbject Oreinted Program)
① null 안정성 ② scope function ③ Coroutine : 경량 Thread 비동기
안드로이드 스튜디오 res or drawable 폴더 우클릭New > Vector AssetLocal file (SVG,PSD) 클릭후 Path에서 변환할 파일의 로컬 경로 지정
스플래시 화면 구성 중 > 1. 앱 시작 1초 뒤에 텍스트 등장 텍스트는 1.5초간 fadeIn 애니메이션 애니메이션 종료 후 메인 화면으로 이동 위와 같은 조건을 만족해야 했다. 이에 1년 전, Handler와 CountDownTimer를 이용하여 구현하였다.