코틀린 개인 과제 10

이미지 검색앱 만들기

1. 설계:MVVM,Repository,Usecase,UiState Pattern, hilt사용-hilt에 사용하기 위해 ImageSearchApplication을 생성.-MainActivity에 검색결과 프래그먼트(SearchFragment)와 내 보관함 프래그먼트(MyStorageFragment)를 붙이고 각각 검색결과와 보관한 이미지가 보이도록함-RecyclerView를 이용하여 이미지를 화면에 띄움-검색어 저장, 검색어 불어오기, 이미지저장, 이미지불러오기, 이미지 삭제를 Usecase로 만들어 구현-로컬데이터와 리모트데이터에 대한 레포지토리를 각각 생성-로컬데이터 소스는 SharedPreference, 리모트데이터 소스는 Retrofit으로 카카오 검색 API를 활용함 2. 코드 https://..

뉴스 리더 앱

1. 구현 기능1)타이틀을 따로 프래그먼트에 리사이클러뷰가 들어간 형태로 구현2)세로화면에선 타이틀 클릭시 화면이 디테일 프래그먼트로 변경3)가로화면에서는 타이틀과 디테일 프래그먼트가 같이 존재하도록 설정4)타이틀을 클릭하면 디테일 프래그먼트로 데이터 전송 2.구현1)NewsItemdata class NewsItem(val title: String, val article: String)-뉴스 제목과 기사내용을 담은 데이터 클래스 2)CustomAdapterclass CustomAdapter(val datas:Array): RecyclerView.Adapter() { interface ItemClick{ fun onClick(str:String) } var itemClick:I..

연락처 리스트앱 구현

1. 구현기능 -연락처 불러오기-여러 뷰홀더를 이용하여 즐겨찾기 여부에 따라 다른 아이템뷰로 연락처 리스트 나타내기-리사이클러뷰 어댑터를 리스트 어댑터 사용하기-전화 걸기 2. 구현1)Contactdata class Contact(val name:String, val num:String, val img: Bitmap?, val starred:Int)-연락처 정보를 담는 데이터 클래스 2)CustomAdapterclass CustomAdapter() : ListAdapter(diffUtil){ interface ItemClick{ fun onClick(tel:String) } var itemClick : ItemClick? = null override fun getItem..

AppleMarket 구현 과제

@ 과제 링크https://teamsparta.notion.site/Android-de05cc5f0d054de9964f8ad1f116b784 Android 앱개발 숙련 개인 과제 | NotionGoal : 사과마켓 앱 만들기 (feat. 당근마켓)teamsparta.notion.site 2. 설계1) 데이터Item: 인텐트로 주고받기 위해서 Pacelable을 상속받는 Item class를 만든다Items: 데이터들을 저장해둘 오브젝트 클래스를 생성해서 싱글톤 패턴으로 데이터를 관리한다. 2)리사이클러뷰: 아이템들을 목록화 시키기 위함RecyclerviewFragment: 리사이클러뷰를 넣을 프래그먼트. 클릭에 대한 함수를 오버라이드하고 어댑터와 리사이클러뷰를 연결시킴CustomAdapter: 리사이클러..

챌린지반 3주차 첫번째 과제: 디자인 패턴 구현

과제 링크:https://teamsparta.notion.site/3-dc9daa742d604be4b7f795b458b1b6af 3주차 과제 | Notion과제teamsparta.notion.site 1. Singletonobject Logger{ fun log(message:String){ println(message) }}-object키워드를 이용해 콘솔창에 메시지를 출력하는 싱글톤 클래스를 만들음 2. Strategyinterface TextAlignmentStrategy{ fun alignment(str:String,int:Int):String}class LeftAligment:TextAlignmentStrategy{ override fun alignment(st..

로그인 앱 제작-2

추가내용-종료버튼에 눌린상태 효과 주기 -intent데이터를 Pacelable을 이용해 클래스 객체로 전달하기 1. 종료버튼 눌린상태 효과 주기1)selector-drawable selector xml파일을 생성하여 눌렸을때와 안눌렸을때의 효과를 shape로 표현 -ConstraintLayout으로 버튼역할을 대신하고 내부에 이미지뷰와 텍스트뷰를 삽입   2)버튼 눌렸을때와 아닐때 텍스트와  이미지효과는 selector로 바꿔주기 힘드므로 코드상에서 바꿔줌=>setOnTouchListener로 눌린 상태로 움직..

로그인 앱 제작

1. 설계1)SignInActivity-아이디와 비밀번호 입력란을 만들음. 하나라도 비워져있으면 토스트 메세지 띄움-로그인 버튼과 회원가입 버튼을 만들음-로그인시 HomeActivity가 실행되고 아이디를 인텐트로 같이 전달-회원가입시 SignUpActivity가 실행되고 이때 registerForActivityResult를 사용해 돌아올때 데이터를 보내도록 함 2)SignUpActivity-아이디와 비밀번호, 이름 입력란을 만들음. 하나라도 비워져있으면 토스트 메세지 띄움-회원가입버튼을 누르면 돌아가면서 아이디와 비밀번호 데이터를 같이 전달하며 finish() 3)HomeActivity-전달받은 아이디를 화면에 띄우고 나머진 자기소개 하드코딩 해둠-랜덤한 5개 이미지중 하나를 띄움 2. SignInAc..

키오스크 제작

1. 개요1)클래스-Menu: 모든 메뉴를 통합해 관리하기위한 추상 클래스 -Pizza: 피자 메뉴를 관리하기 위한 추상클래스, Menu상속-Drink: 음료 메뉴를 관리하기 위한 추상클래스, Menu상속-Side: 사이드 메뉴를 관리하기 위한 추상클래스, Menu상속 -CheesePizza-PepperoniPizza-PotatoPizza=> Pizza상속 -Cola-Beer-Cider=>Drink상속 -FrenchFries-GrilledChicken=>Side상속 2)main.kt-초기값 구성-키오스트 화면 구성-일부 쓰레드 실행-기능 구현 3)전체적인 부분-try-catch로 입력받을때 생기는 예외처리 2. 설명1)Menuabstract class Menu() { abstract var flag..

수식입력이 가능한 계산기 만들기

1. 설계 및 코드1)연산 클래스-연산클래스를 추상화한 AbstractOperation 클래스를 만들은 뒤 AddOperation(더하기), SubstractOperation(빼기), MultiplyOperation(곱하기), DivideOperation(나누기) 클래스들을 만들어 AbstractOperation을 상속받고 각 연산 메소드를 오버라이드 하도록 함.open class AbstractOperation() { open fun operation(num1:Int, num2:Int):Int{return 0}}class AddOperation():AbstractOperation() { override fun operation(num1:Int, num2:Int):Int { ret..