일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 테이블_레이아웃
- 데이터베이스
- 아이폰
- 부스트코스
- 스낵바
- 뷰
- textview auto scroll
- SceneDelegate
- 리니어 레이아웃
- 안드로이드 스튜디오
- edwith
- 서비스
- 제약 레이아웃
- 프로젝트
- 액션바
- 안드로이드_프로그래밍
- IOS
- RecyclerView
- 드로어블
- 텍스트뷰 스크롤
- 상대 레이아웃
- 수명주기
- 안드로이드
- 텍스트뷰 자동 스크롤
- Swift
- 프로그래밍
- 자바
- 레이아웃
- 코틀린
- 코드리뷰
- Today
- Total
목록안드로이드 (33)
듀다의 성장개발로그
리사이클러뷰는 화면을 세로로 스크롤하는 방법입니다. 뷰페이저를 이용해서도 세로로 스크롤할 수 있는 화면을 만들 수 있지만 리사이클러뷰를 활용하면 더 쉽게 만들 수 있습니다. 또한 리사이클러뷰는 상하 스크롤도 지원합니다. 리사이클러뷰는 뷰가 캐시될 수 있는 방법으로, 리스트뷰 대신 뷰홀더를 사용합니다. 뷰홀더란 뷰를 담고 있는 것으로, 뷰홀더 안의 뷰는 각각의 아이템을 보여주기 위한 객체로 사용됩니다. 리사이클러뷰도 선택 위젯이기 때문에 어댑터가 필요합니다. 뷰를 인플레이션하면서 뷰홀더에 바로 넣어줄 수 있기 때문에 레이아웃 xml파일만 하나 정의를 하고 그것을 가지고 어댑터를 만들면서 바로 인플레이션 하는 방법으로 만들 수 있습니다. 그렇게 하기 위해서는 데이터를 담아놓을 객체와 xml파일이 필요합니다...
이번 포스팅에서는 앱에서 음악을 실행하는 기능을 만들어보겠습니다. 음악을 재생하려면 MediaPlayer클래스가 필요합니다. 그리고 재생할 파일의 주소가 필요합니다. 해당 주소로 URL을 지정하고, MediaPlayer 클래스의 prepare로 일부 정보를 확인 후 start를 호출하면 음악 파일이 재생됩니다. 인터넷과 연동된 앱의 경우 서버에 음악 파일을 올려놓고 재생하도록 하는 경우가 많은데요, 여기서는 샘플 음악 파일 서버에 접근하여 그 주소에 저장된 음악을 재생해보도록 하겠습니다. 재생, 일시정지, 재시작, 정지의 네 가지 기능을 구현하려고 합니다. 레이아웃은 위와 같이 버튼 4개로 구성해보겠습니다. 이 앱은 인터넷 권한을 사용합니다. AndroidManifest.xml에서 권한을 추가해주어야 합..
가장 시간이 오래 걸렸던 프로젝트E였습니다. 프로젝트 E의 요구사항을 구현하는 것보다 프로젝트 D에서의 피드백을 적용하는 데에 훨씬 많은 시간을 썼던 것 같습니다. 프로젝트D에서 패키지를 처음 나누었는데, 소스 파일을 여기저기에 추가하고 지우다보니 알아보기가 어려워진 것 같습니다. 정리가 필요하겠습니다. 역시 이 부분에 대한 피드백이 가장 강조되었습니다. 가독성을 크게 해치는 구조가 되어버렸군요. 변수명에도 조금 수정이 필요하겠네요. 이 부분은 구조를 바꾸는 과정에서 삭제되었어야 할 코드인데 제가 못 보고 남긴 부분이었습니다. 제출 전 조금만 더 꼼꼼하게 검토했으면 찾아냈을 부분인데 아쉽군요. 이 부분은 피드백 받은 그대로 수정하면 될 것 같습니다. 글 첫머리에 말씀드린 대로 시간이 가장 많이 걸린 프로..
이번 포스팅에서는 데이터베이스 헬퍼의 사용과 인터넷 연결 상태를 확인하는 방법에 대해 다루겠습니다. 데이터베이스를 사용하는 앱을 유지 관리하다 보면 데이터베이스에 칼럼을 추가하거나 변경하는 등 데이터베이스를 업데이트 해야 하는 경우가 있을 것입니다, 테이블을 삭제하고 다시 만들면 쉽게 업데이트가 가능하겠지만 이미 해당 데이터베이스를 사용하는 사람이 많다면, 테이블을 삭제했을 때 그 유저들의 정보까지 삭제되겠죠. 테이블을 새로 만드는 대신 헬퍼 클래스를 사용할 수 있습니다. class DatabaseHelper extends SQLiteOpenHelper { public DatabaseHelper(@Nullable Context context, @Nullable String name, @Nullable S..
이번 포스팅에서는 데이터베이스를 활용한 앱을 직접 만들어보도록 하겠습니다. 데이터는 이름(텍스트), 나이(인티저), 연락처(텍스트)의 세 개 칼럼으로 구성하려고 합니다. 데이터베이스 활용의 네 단계를 모두 수행해야 하기 때문에 네 개의 버튼을 넣어 화면을 위와 같이 구성합니다. 데이터 추가하기 단계에서 입력 없이도 데이터를 추가하기 위해, EditText에 이름, 나이, 연락처 정보를 미리 넣어두었습니다. public void println(String text) { textView.append(text); } 파란 화면에는 스크롤뷰를 넣고 그 안에 TextView를 넣습니다. println메소드를 정의해, 내부 함수가 실행될때마다 그 내용을 이 텍스트뷰에서 보여주기 위함입니다. public class ..
데이터베이스란 말 그대로 데이터가 저장된 베이스인데요, 좀 더 자세히 설명하면 데이터를 한 군데 모아서 저장해두고 필요하면 가져갈 수 있는 저장소입니다. 그 중에서도 오라클, MySQL 등 관계형 데이터베이스가 많이 사용됩니다. 관계형 데이터베이스는 테이블을 사용하는 데이터베이스입니다. 데이터를 담는 작은 통이라고 할 수 있는 이 테이블은 릴레이션(Relation)이라고도 불리는데요, 테이블을 사용하는 데이터베이스를 관계형(Relational)데이터베이스라고 부르는 이유도 바로 그것입니다. 관계형 데이터베이스는 데이터를 엑셀처럼 일목요연하게 볼 수 있다는 장점이 있습니다. 그렇지만 엑셀과는 다르게 테이블의 구조가 먼저 정의되어야 합니다. 각각의 세로줄을 정의할 때는 각각의 칼럼(열) 이름과 타입이 먼저 ..
volley 라이브러리를 이용하면 웹으로부터 데이터를 받아오는 기능을 좀 더 간결하게 구현할 수 있습니다. implementation 'com.android.volley:volley:1.1.0' volley를 사용하려면 build.gradle에서 위의 코드를 implement해주어야 합니다. public void sendImageRequest() { String url = "https://img6.yna.co.kr/etc/inner/KR/2019/05/01/AKR20190501059500005_01_i_P2.jpg"; ImageLoadTask task = new ImageLoadTask(url, imageView); task.execute(); } 간단하게 이미지를 불러오는 기능 먼저 시작해보겠습니다. ..
난이도가 확 뛰었던 프로젝트 D였습니다. 만들면서도 이렇게 해도 되나 싶은 생각이 참 많이 들었던 기억이 납니다. 일단 모로 가도 서울로 가는 코드로 Pass는 했지만 아직은 많이 부족하다는 걸 느낄 수 있었습니다. 구현방식의 차이라는 것은 의도와는 다른 결과물이 나왔다는 의미이겠죠? 사실 저 부분은 세부화면에서도 햄버거버튼이 보이게 하려는 의도로 넣은 코드가 맞습니다. 그렇지만 실무에서는 상위 화면으로 이동한 뒤에 화면 이동이 가능하도록 만드는 것 같네요. 세부화면에서는 화살표 버튼으로 두는 게 보통인 것 같습니다. 이 부분은 네비게이션에서 화면을 이동하는 코드였습니다. 더 직관적으로 구현하는 방법이 있었습니다. 이 부분은 제가 상속의 개념을 반만 활용한듯한 느낌이네요. 여러 다른 화면을 만들 땐 한 ..