안드로이드/개발 TIP: 70개의 글
지난 포스팅에서 Firebase(파이어베이스)가 무엇인지 알아봤습니다. 이번 포스팅에서는 파이어베이스의 특 장점인 Realtime Database를 사용해서 간단한 채팅 앱을 구현해보겠습니다. 1. Realtime Database 참고 : 파이어베이스의 리얼타임 데이터베이스는 Android, iOS, Web에서 사용이 가능합니다! '리얼타임 데이터베이스'란 데이터 저장 공간인 데이터베이스에서 데이터를 실시간으로 주고받는 것을 의미합니다. Firebase의 데이터베이스는 개발자가 직접 구축하는게 아니라 Firebase에서 기본적으로 제공하는 폼을 사용합니다. 이 데이터베이스는 Android에서API 사용으로 몇줄의 소스만을 통해 실시간으로 앱 데이터를 저장 및 동기화를 해줍니다. 그렇기 때문에 서버관리에서..
오늘은 Android와 JAVA에서 JSONObject를 다루는 방법에 대해 포스팅하겠습니다. JSONObject는 데이터를 주고 받을때 유용하며 데이터에 대한 정보가 String형태로 이동될 때도 유용하게 사용할 수 있습니다. 필자는 안드로이드와 웹, DB간의 통신을 하기 위해 주고 받는 데이터를 JSON 객체를 통해 주고받으며 좀 더 일관성있고 기능적이게 데이터를 다루었습니다. 1. 데이터 처리 안드로이드에서는 SQLite라고 불리는 내부 DB를 통해 데이터를 저장하고 불러온다. 하지만 실시간으로 변하는 데이터나 다른 사용자의 데이터를 불러오기 위해서는 서버를 통한 DB통신이 필요하다. 이와 같은 상황에선 SQLite만으로 해결할 수 없고 외부 DB를 사용해야한다. 주로 MySQL에나 Oracle를 ..
1. 안드로이드의 서버 통신 안드로이드는 서버와 통신하기 위한 방법으로는 HTTP통신과 Soket통신이 있다. 오늘 다룰 내용은 HTTP통신으로 URL 접속을 통해 데이터를 읽어오는 방법이다. 우리는 주로 DB에 존재하는 데이터를 가져오기 위해 서버 통신을 한다. 하지만 안드로이드의 특성상 외부 DB에 직접 접근할 수 가 없도록 되어있어 중간 매체인 WEB을 활용해야한다. 이해를 위해 그림으로 쉽게 표현했다. [그림 1] 안드로이드와 WEB, 그리고 DB 통신 과정 안드로이드 통신은 보통 위와 같이 이뤄지며 본 포스팅에서는 'ANDROID-WEB'의 통신 방법에 대해 다룰 것이다. 우선 막연하게 WEB이라고만 하면 정확히 어떤 것을 말하는 것인지 헷갈릴 수 있다. 여기서 말하는 WEB은 HTML, JSP..
본 포스팅은 안드로이드 디벨로퍼스(https://developer.android.com/training/permissions/requesting.html?hl=ko#perm-check)를 참고하여 작성하였습니다. 안녕하세요. PEACE-입니다. 오늘은 퍼미션 관련 정의와 체크에 대해 간단하게 짚고 넘어가겠습니다. 안드로이드 버전 6.0(Marshmallow) 부터는 안드로이드 폰에 대한 권한 설정이 엄격해졌습니다. 이전에는 메니페스트에서 퍼미션만 추가해주면 됐지만, 또 다른 방법으로 처리를 해야합니다. 매우 불편할지도 모르지만, 안드로이드 폰을 사용하는 사용자를 위한 작업이니 따를 수 밖에 없다고 생각합니다. 1. 권한 체크 사이클 예 * 권한 필요 -> 권한 체크 -> 권한 요청 -> OK (BY US..
1. 메인쓰레드(UI Thread)와 비동기 처리 우리가 사용하는 안드로이드 어플리케이션에서 UI(버튼, 리스트, 텍스트뷰 등등..)는 UI쓰레드라고 불리는 메인쓰레드가 관여하고 처리한다. 그렇다면 우리가 만든 버튼을 통해 어떠한 작업을 수행한다면 메인쓰레드는 어떻게 처리할까? 우선 하나의 상황을 통해 설명하려한다. '777APP'이라는 어플리케이션에 '다운로드'와 '페이지 닫기'라는 두 개의 버튼이 구성되어있다. 그리고 다운로드 버튼을 클릭해 해당 파일을 다운로드 하려한다. 이때 메인쓰레드가 수행하도록 코드를 구성했다면 버튼에 대한 처리는 메인쓰레드가 할 것이며, 다운로드하는 처리도 메인쓰레드가 할 것이다. 또한 다운로드 받는 동안 타 UI와의 교류가 비활성화 될 것이다. 쉽게말해 '다운로드' 버튼과 ..
Android Intent를 통해 Activity, Service, BroadCast 등 여러 구성요소 사이에서 통신을 용이하게해줍니다. 오늘은 Acitivity사이에서 통신하는 명시적 Intent에 대해 알아보겠습니다. 1. Intent Intent는 일종의 메시지 객체이다. Intent를 통해 Activity의 새 인스턴스를 시작하는 방법은 여러가지가 있다. 우선 Activity의 새 인스턴스(다른 액티비티 시작)를 시작하려면 Intent를 startActivity()로 전달해야한다. 새 인스턴스에 데이터를 넘겨주기 위해서는putExtra() 메서드를 이용한다. 또한 이전 Activity로 돌아와서 수행 결과를 받으려면 startActivity()를 통해 Activity의 새 인스턴스를 시작하고 se..
Firebase 구글에서 Firebasse를 통합 앱 플랫폼으로 확장했습니다. Firebase는 웹과 모바일 개발에 필요한 기능을 제공하는 BaaS(Backend as a Service)입니다. 쉽게말해 백엔드 개발을 통해 서버를 따로 설계, 구현하지 않고 프론트엔드 개발에 집중할 수 있도록 도와주는 서비스입니다. 기능으로는 실시간 데이터베이스, 간편한 사용자 인증, 클라우드 저장소, 호스팅, 앱 테스트와 수익 창출을 도와주는 등 다양한 기능을 제공해줍니다. Firebase는 크게 두가지 컨텐츠를 제공합니다. 제품 개발과 제품 성장을 도와주는 컨텐츠입니다. 자세한 기술은 아래 Firebase의 공식 홈페이지의 Product를 참고하였습니다. https://firebase.google.com/product..
Handler handler = new Handler(); // 핸들러 사용 하기 위해 핸들러 객체를 생성하였다. Runnable run = new Runnable() // Runnable 인터페이스를 을 통하여 동작을 구성해야 한다. { @Override public void run() { Intent intent = new Intent( MainActivity.this, SubActivity.class); startActivity(goMain); finish(); // 현재 intent를 종료시킨다. } }; handler.postDelayed(run, 5000); // postDelayed() 메소드를 이용하면 일정 시간이 지난후에 함수를 동작시킬 수 있다. //위 예제의 경우 5초 후에 액티비티를..
SketchApp GUI Design tool - 예쁜 APP을 만들고 싶을때, Photoshop에 새로 추가된 Artboard 가 적응이 안될때, 일러스트가 Photoshop보다 편한 사람들에게 권장, 집에 맥OS 가 돌아가는 컴터가 있을때, 회사에 놀고있는 맥이 있을 때 사용.https://www.sketchapp.com/ 장점 : - 나 빼고 다른 디자이너들이 다 이걸쓴다 -_ -; ( 뭔가 앞서가는 느낌적인 느낌 있음 - 알수없는 우월감) - App 제작에 최적화 되어있다고 들었음 (안 써봄 - 맥이 없어서...) 단점 : - Windows 를 지원하지 않는다 ( 좋은 프로그램은 언제나 맥OS 에서만 ..) - > 맥을 사야된다 -> 적금을 깬다 -> 카드 할부를 한다 -> 나만 산다고 되는게 아..
안드로이드는 해상도가 다양한 관계로 디자인할때 dpi를 기준으로 디자인하고 개발자에게 전달하는데 있어 주의 해야한다. (이미지 출처 : https://www.google.com/design/spec/style/icons.html) mdpi : hdpi : xhdpi : xxhdpi : xxxhdpi = 2 : 3 : 4 : 6 : 8 : ? 아이콘을 기준으로 mdpi = 48px hdpi = 72px xhdpi = 96px xxhdpi = 128px 이미지를 개발자에게 전달할때 위의 분류대로 각각의 이미지를 전달해야한다. 자동으로 해상도별 이미지를 출력해주는 프로그램 9Patch-Resizer 다운로드 : https://github.com/redwarp/9-patch-resizer 다운받은후 exe실행후..