일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 데이터베이스
- 부스트코스
- 테이블_레이아웃
- 서비스
- Swift
- 액션바
- 안드로이드_프로그래밍
- 스낵바
- edwith
- 코틀린
- 레이아웃
- 프로그래밍
- 상대 레이아웃
- 텍스트뷰 자동 스크롤
- 드로어블
- IOS
- RecyclerView
- 프로젝트
- 제약 레이아웃
- Today
- Total
목록전체 글 (48)
듀다의 성장개발로그
이번 포스팅에서는 앱에서 음악을 실행하는 기능을 만들어보겠습니다. 음악을 재생하려면 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는 했지만 아직은 많이 부족하다는 걸 느낄 수 있었습니다. 구현방식의 차이라는 것은 의도와는 다른 결과물이 나왔다는 의미이겠죠? 사실 저 부분은 세부화면에서도 햄버거버튼이 보이게 하려는 의도로 넣은 코드가 맞습니다. 그렇지만 실무에서는 상위 화면으로 이동한 뒤에 화면 이동이 가능하도록 만드는 것 같네요. 세부화면에서는 화살표 버튼으로 두는 게 보통인 것 같습니다. 이 부분은 네비게이션에서 화면을 이동하는 코드였습니다. 더 직관적으로 구현하는 방법이 있었습니다. 이 부분은 제가 상속의 개념을 반만 활용한듯한 느낌이네요. 여러 다른 화면을 만들 땐 한 ..
이제 화면 레이아웃을 구성하는 것을 넘어서 서버와 통신하는 앱을 만들어 볼 차례입니다. '서버와 통신' 이라고 하면 거창하게 들릴 수 있지만 그렇게 복잡한 개념이 아닙니다. 컴퓨터가(스마트폰이) 인터넷과 연결되어 있다면 그 사이에 데이터를 보내주는 기능이 필요할 것입니다. 이 기능을 수행하는 것이 바로 서버입니다. 서버에 데이터를 요청하는 것은 '클라이언트'의 역할이며, 이렇게 클라이언트가 요청하고 서버가 응답하는 것을 2-tier C/S모델이라고 합니다. 이 포스팅에서도 클라이언트 소켓과 서버 소켓으로 2-tier C/S모델을 구현해보겠습니다. 화면 레이아웃은 "클라이언트 시작"이라는 버튼 하나만 있는 것으로 구성하고 이너 클래스로 스레드를 하나 정의하겠습니다. 네트워킹을 사용할 때는 반드시 스레드를 ..