일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 상대 레이아웃
- 드로어블
- 안드로이드_프로그래밍
- 프로젝트
- 아이폰
- 자바
- 스낵바
- RecyclerView
- 텍스트뷰 자동 스크롤
- 액션바
- 뷰
- 리니어 레이아웃
- 안드로이드 스튜디오
- 테이블_레이아웃
- Swift
- SceneDelegate
- 안드로이드
- 코틀린
- 수명주기
- 데이터베이스
- 제약 레이아웃
- IOS
- 프로그래밍
- edwith
- 텍스트뷰 스크롤
- 부스트코스
- 레이아웃
- 코드리뷰
- 서비스
- textview auto scroll
- Today
- Total
목록분류 전체보기 (48)
듀다의 성장개발로그
스레드는 무언가를 동시에 실행하기 위해서 생성하는 새로운 실행단위입니다. 앱의 기능을 구현하려면 어떤 기능을 동시에 실행시켜야 하는 경우가 있습니다. 예를 들면 슈팅게임을 만든다고 할 때, 화면에는 비행기가 여러 대인데 한 번에 한 대씩만 움직인다고 하면 재미가 없겠죠? 이 경우 스레드를 활용해서 동시에 움직이는 비행기를 구현할 수 있습니다. 이 포스팅에서는 안드로이드 스튜디오에서 스레드를 만들어 보고, 간단한 활용까지 해보도록 하겠습니다. Thread 만들기 두 개의 버튼과 하나의 텍스트뷰를 가진 화면을 구성하여 '스레드 시작'을 클릭하면 스레드가 시작되고, '진행값 확인'을 클릭하면 스레드를 시작시킨지 몇 초가 지났는지 '진행값'부분에서 보여주는 앱을 만들어보겠습니다. 화면 구성은 그림과 같이 해 주..
어느덧 프로젝트 C까지 리뷰를 받았습니다. 이번에는 피드백의 분량이 조금 많군요. 뒤로가기 키를 눌렀을때의 동작을 설정하는 부분에서, onKeyDown 대신 onBackPressed를 사용하는 것이 좋다는 피드백을 받았습니다. enum을 안 쓰고 있어서 잊고 있었는데 이것도 잘 활용해야겠다는 생각이 드네요. 앞으로는 요청값을 상수로 저장하면 가독성을 높일 수 있을 것 같습니다. 이 부분은 사실 배우지 않은 부분이지만 꼭 알아야 할 중요한 부분이라는 생각이 드네요. 인텐트로 가능한 부분과 불가능한 부분을 명확히 인지할 필요가 있다는 생각이 듭니다. 이 부분은 제가 질문한 부분이지만 이 피드백을 보니까 좀더 다른 방향으로 생각해보았어야 한다는 생각이 드네요. 분명히 이 문제를 인지하고 있었고, 해결 방법도 ..
액션바는 여러 기능을 수행할 수 있는 아이콘들을 화면 상단에 담고 있는 부분입니다. 자주 쓰는 기능을 버튼으로 만들어 화면 상단에 모아놓으면 사용하기에도 편리하고 화면 구성도 효율적으로 할 수 있겠죠? 화면 상단에 버튼들을 추가하는 방법에는 여러 가지가 있습니다. 그 중 액션바를 추가하는 방법에 대해 알아보겠습니다. 아래의 그림에 새로고침, 검색, 설정 등의 아이콘이 보이실 겁니다. 이런 액션바를 추가하는 것은 레이아웃에서 이루어지는데요, 액션바를 위한 레이아웃 파일을 새로 만들어주어야 합니다. 메뉴 리소스 파일을 정의하기 위해, 메뉴 폴더를 새로 생성한 뒤 레이아웃을 만들었습니다. 메뉴 디렉토리는 res 디렉토리에서 new - directory를 클릭하면 출력되는 위의 팝업에 새 디렉토리 이름를 입력하..
안녕하세요. 오늘은 프래그먼트 만들기에 대해서 이야기해보도록 하겠습니다. 프래그먼트란 하나의 화면에 여러 부분화면이 들어가 있는 것입니다. 각각의 부분화면은 부분화면이지만 독립적인 화면입니다. 독립적인 화면이라는 점에서 액티비티와 유사하게 느껴질 있습니다. 실제로 액티비티와 공통점을 갖는, 비슷한 용도를 가진 기능입니다. 액티비티가 액티비티 매니저에 요청해서 다른 액티비티를 띄우듯, 프래그먼트도 다른 프래그먼트를 직접 띄울 수 없고, 프래그먼트 매니저에 필요한 기능을 요청해야 합니다. 또, 프래그먼트도 하나의 레이아웃과 하나의 소스 파일로 이루어져 있다는 것도 액티비티와의 공통점입니다. 액티비티를 이용해서 만들어진 화면과의 차이점도 존재합니다. 프래그먼트는 하나의 액티비티 안에서 존재하므로 인텐트를 사용..
오늘 다룰 내용은 브로드캐스트 수신자인데요, 애플리케이션 구성 요소중에 하나였던 브로드캐스트 수신자 기억하시나요? 네 맞습니다. 브로트캐스트도 애플리케이션 구성 요소 중 하나이지요. 관련 포스팅을 하나씩 채워가는 것을 보니 뿌듯하군요. 브로드캐스트 수신자란 말 그대로 브로드캐스트를 수신할 수 있는 객체입니다. 여러 사람에게 한꺼번에 데이터를 뿌려주는 것을 브로드캐스트라고 하는데요, 이것을 받을 수 있는 객체가 바로 '브로드캐스트 리시버(브로드캐스트 수신자)'입니다. 즉, 브로드캐스트 수신자란 뿌려진 데이터를 받을 수 있는 것을 말하는 것이지요. 따라서 브로드캐스트를 등록해놓아야 브로드캐스트를 받을 수 있습니다. 브로드캐스트 리시버도 화면이 없고, 시스템이 관리하는 것입니다. 브로드캐스트 객체를 이용해서 ..
지난번에 액티비티에 대해서 포스팅을 했었는데요, 액티비티에는 실행부터 종료시까지 순차적으로 실행하는 메소드가 있습니다. 이것을 바로 '수명주기 메소드'라고 부릅니다. 수명주기 메소드에는 이미 익숙한 이름인 onCreate()에서부터 onStart, onStop, onDestroy, onPause, onResume등이 존재합니다. 왜 수명주기 메소드가 필요할까요? 액티비티의 상태를 나타내기 위함입니다, 액티비티는 여러 개가 실행되어 있으면 액티비티 스택에 쌓이게 됩니다. 그 안에서 어떤 것이 실행중이거나 중지된 것인지 구분할 필요가 있겠죠? 액티비티의 대표적인 상태는 세 가지로, 중지(Stop), 일시 중지(Pause), 실행(Run)이 바로 그것입니다. 이 상태들은 언제 지정되는 것일까요? 이것은 마치 ..
인텐트는 액티비티의 인스턴스 객체로 시스템으로 전달되는 일종의 명령을 담고 있는 객체입니다. 시스템 안에서 데이터를 옮기는 데 필요한 객체이지요. 이 인텐트가 필요한 이유는 액티비티를 다루기 위해서인데요, 시스템에서 액티비티를 관리하기 때문에, 예를 들어 액티비티를 띄우거나 없애려고 한다면 시스템에 요청해야 합니다. 그런데 시스템에 무언가를 요청할 때는 반드시 시스템이 이해할 수 있는 포맷으로 전달해야 합니다. 바로 이 인텐트가 시스템이 이해할 수 있는 포맷이기 때문에 인텐트를 사용하는 것이지요. 인텐트는 액티비티끼리 뿐만 아니라 액티비티와 서비스도 데이터를 전달할 수 있게 하고, 브로드캐스트 수신자와도 통신할 수 있게 합니다. 인텐트에는 명시적 인텐트와 암시적 인텐트가 존재합니다. 명시적 인텐트는 액티..
안드로이드 앱을 사용하다 보면 다른 화면으로 넘어가거나, 표시되지 않던 부분들이 표시되는 기능들을 많이 볼 수 있습니다. 앱이 두 개 이상의 화면을 사용하기 때문에 그러한 기능을 만들 수 있는 것이지요. 이제 한 가지 화면을 구성하는 것을 넘어 두 개 이상의 화면을 다루는 것도 시도해 볼 차례입니다. 하나의 화면은 '액티비티'라고 부릅니다. 안드로이드 스튜디오의 빈 프로젝트에서도 기본적으로 포함된 레이아웃과 소스 파일 이름에 'activity'가 포함되듯 안드로이드의 화면은 액티비티라고 부릅니다. 한 액티비티는 하나의 xml과 하나의 java 소스 파일이 한 쌍으로 구성됩니다. 액티비티를 만드는 과정은 강의에서 다섯 가지 단계로 소개했는데요, 우선 새로운 액티비티 만들고 -> 새로운 액티비티의 XML 레..