-
TECHIT 앱 스쿨 2기: Android 37~39일차 (23.06.20 ~ 22)[THEC!T] 앱 스쿨2기 : Android 2023. 6. 22. 23:20728x90
자료 출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 내용
06.20(화) ~ 06.21(수) 37~38일차 동안은 안드로이드 스튜디오 강의가 아닌 PM 및 깃헙 특강이 진행되었습니다.
해당 특강을 들으면서 가장 많이 느꼈던 점은 정보처리기사 필기를 공부하면서 1과목에서 글로만 봤던 개념등을 강사님의 경험등을 토대로 실제로는 어떻게 활용하는지 등에 대해서 알게 되어 좋았습니다.
특강 내용을 매우 간단하게 요약하자면 프로젝트 관리의 a - z 라고 요약할 수 있는 특강이였습니다.
개발 방법론 , 프로젝트 진행 관리, 아키텍처의 중요성 등등 프로젝트 진행 간 관리요소에 대해서 모두 알려주셨고, 이후로는 프로젝트 관리 및 버전 관리 등에 대한 다양한 방법들을 알려주셨습니다. 알려주신 내용이 많아 블로그에 적기는 힘들지만, 추후 프로젝트 진행 중 어려움이 있다면 정리해둔 자료를 참고하여 진행 할 수 있게 되었습니다.
다만 아쉬웠던 점이 있다면 저의 경우 깃허브에 repositories 들을 깃헙 데스크톱으로 관리를 하는데 깃헙 실습관련 쪽에서 익숙하지 않은 툴들을 사용하여 잠깐 삐끗하면 따라가기가 힘들었던 점이 였습니다. 그래도 하지만 다른 툴들을 경험해 볼수 있어 좋은 경험이였습니다.
오늘부터는 다시 안드로이드에 대하여 강의를 해주셨습니다.
시작으로는 중간 과제와 함께 내주신 문제에 대한 설명과 실습으로 시작하셨습니다.
해당 문제에 대한 설명과 실습을 진행하면서 강사님께서는 중간과제에 대하여 힌트등을 조금씩 던저주셨습니다.
저의 경우에는 액티비티의 이동 즉 백스텍 내 top 액티비티가 종료 될 때 혹은 실행할 때 원하는 데이터가 제대로 전달 되지 않는 문제가 있었습니다. 하지만 함께 내주신 문제에 대해서 설명해주시면서 companion object 을 사용하여 직면한 문제를 해결 할 수 있음을 암시해주시는 말씀을 해주셨습니다. 그래서 오늘 강의가 끝나고 말씀해주신 개념을 사용하여 제가 직면한 문제를 해결완료 하였습니다.
전체적인 코드를 올리지는 못하지만 제가 작성한 코드를 현재 상태에서 리뷰를 해보자면 디자인 패턴이 한개가 아니라는 점에서 지저분한 코드라는 리뷰을 할 것 같습니다. 왜냐하면 데이터 전달 간 companion object와 관련하여 사용하여 한 게 아니라 다른 방법으로도 전달한 부분들이 있기 때문입니다. (companion object을 사용하지 않고 이미 구현해놓은 일부)
즉 정리하자면 싱글톤 패턴이 아닌 코드의 상태이기 때문입니다.
일부 코드에서는 데이터를 반복하여 추출 후 반복하면서 전달 받아 사용하고, 일부 코드에서는 데이터를 companion object를 사용하여 바로 가져오기 때문입니다.
그렇기 때문에 주말동안 시간을 내서 전체적으로 싱글톤의 패턴으로 코드 리팩토링을 진행해봐야 할 것 같습니다.
다음으로는 다른 애프리케이션의 액티비티를 실행하는 법에 대해서 알려주셨습니다.
AndroidManifest.xml 파일에 다른 애플리케이션이 실행할 수 있도록 하고자 할 때 Intent filter를 이용하여 이름을 설정해주면 됩니다.
접근을 허용하려는 애플리케이션 내 AndroidManifest.xml 일부
<activity android:name=".ThirdActivity" android:exported="true"> <intent-filter> <action android:name="com.test.android45_third_activity"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity>
접근 할 때
val newIntent = Intent("com.test.android45_third_activity") newIntent.putExtra("data1", 100) newIntent.putExtra("data2", "안녕하세요") activityLauncher.launch(newIntent)
다음으로는 Toast, SnackBar에 대해서 알려주셨습니다.
Toast 는 일정 시간동안 보여진 후에 사라지는 메세지 입니다.
SnackBar 또한 일정 시간 보여준 후 사라지는 메세지 이지만 개발자가 원한다면 사라지지 않도록 할 수 도 있습니다.
다음으로는 Dialog 에 대해서 알려주셨습니다.
Dialog는 사용자에게 메시지를 전달하는 용도로 사용하며, 메세지 전달이나 입력 등의 용도로 사용합니다.
Toast, SnackBar 차이점으로는 기존 액티비티는 onPause() 상태가 되기 때문에 사용자는 해당 메시지를 못 보는 상황이 올 수가 없습니다.
Dialog 에 대해서 5개의 형태를 알려주셨습니다.
1. 기본 다이얼로그 : 메시지와 최대 3개의 버튼을 제공
2. 커스텀 다이얼로그 ; 기본 다이얼로그에 View를 설정하면 표시되는 모양을 자유롭게 구성가능
3. DatePicker : 다이얼로그를 통해 날짜를 선택할 수 있도록 제공되는 다이얼로그
4. TimePicker : 다이얼로그를 통해 시간을 선택할 수 있도록 제공되는 다이얼로그
5. 리스트 다이얼 로그 : 다이얼 로그를 통해 리스트뷰를 보여주는 다이얼 로그
마무리
이후로는 강사님께서 오늘 배운 내용을 바탕으로 한 문제를 내주셨습니다.
아직 작성을 완료하지 못하였지만 주말 간에 시간을 내서 중간과제 내 코드 정리 및 내주신 문제를 통한 복습을 진행 할 수 있도록 하겠습니다. 그 동안 과제에서 직면한 문제때문에 머리가 정말 아팠었는데 고민하면서 여러 생각을 하다보니 조금의 힌트만 있어도 금방 떠오르고 적용할 수 있다는 점에서 발전하는 고민을 그 동안 했었던 것 같습니다. 정말 막힌 혈이 뚫린 느낌이라 고민할 때와는 다른 상쾌한 하루가 된 것 같습니다.
오늘의 마음가짐
너무 막히면 물어보며, 뚫어가며 발전하는 개발자 되자.
'[THEC!T] 앱 스쿨2기 : Android' 카테고리의 다른 글
TECHIT 앱 스쿨 2기: Android 41일차 (23.06.26) (0) 2023.06.27 TECHIT 앱 스쿨 2기: Android 40일차 (23.06.23) (0) 2023.06.24 TECHIT 앱 스쿨 2기: Android 36일차 (23.06.19) (0) 2023.06.20 TECHIT 앱 스쿨 2기: Android 34일차 (23.06.15) (0) 2023.06.16 TECHIT 앱 스쿨 2기: Android 33일차 (23.06.14) (0) 2023.06.15