프로그래밍/Android 140

안드로이드 Custom Object Intent로 넘기기, Parcelable 구현

내가 만든 클래스 넘기기 (마인크래프트 앱 개발기 3편) 7월 업데이트를 위해 리팩토링을 하면서,데이터 타입에 대한 정리는 끝났으니 이제 전송에 관련된 일을 처리해야했다. 나는 ItemDB라고 하는 클래스를 만들어 아이템 정보를 관리하고 있다.그러나 특성상 ItemDB 자체를 인텐트로 넘겨야 더 좋은 성능을 낼 수 있는 상황이 왔다.intent.putExtra(key, value)로 보내어 value 값이 맞는 아이템을 500개 리스트에서 일일이 찾기 보다는그냥 ItemDB 하나만 심플하게 보내는 방법이 좋아보였다.그러나 putExtra()는 한정된 자료형만 전송할 수 있는 단점이 있기에, 어떻게 해결하면 좋을지 찾아보다가Parcelable 또는 Serializable 을 이용해 커스텀 오브젝트를 전송할..

안드로이드 아름다운 카드뷰(Card View) 리스트 만들기 - (3)

이번 강의에서는 Card View에 이미지를 적용 시키는 방법과, 개별 클릭 이벤트를 처리하는 방법에 대해 알아 볼 것이다.나는 이미지 URL을 이용해 이미지를 불러올 것이기 때문에 마음 편하게 라이브러리를 사용했다.이미지 관련 라이브러리 중 유명한 것은 Picasso와 Glide가 있는데, 둘 다 사용법은 비슷하고 성능도 좋다. 이미지 라이브러리인 Picasso를 사용하기 위해Gradle에 다음 코드를 한 줄 추가한다. build.gradle (Module : app)dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompa..

안드로이드 아름다운 카드뷰(Card View) 리스트 만들기 - (2)

레이아웃을 만들기가 끝났으니, 이제는 데이터를 모아 Adapter로 연결하는 일만 남았다.이 예제에서는 Fragment에서 RecyclerView를 불러올 것이기 때문에 Activity를 사용한다면 조금 수정할 부분이 있다.- onCreateView() -> onCreate()- getActivity() -> getApplicationContext() 또는 ~Activity.this 또는 this 그리고 이 예제에서는 공지사항을 불러오기 위한 카드뷰이므로웹 DB에서 만들어진 데이터를 php를 이용해 JSON 객체로 만들어불러오고, 안드로이드는 JSON을 읽어 ArrayList 형태로 데이터를 정리한다.그리고 그 데이터를 카드뷰 하나 하나에 뿌려준다.중간에 있는 DBhelper나 getData() 메소드는..

안드로이드 아름다운 카드뷰(Card View) 리스트 만들기 - (1)

오늘은 카드뷰(CardView)와 리사이클러뷰(RecyclerView)를 이용한아름다운 리스트 만들기에 대한 강의를 진행 해 보려고 한다.매 번 카드뷰를 만들 때마다 찾으려니 귀찮아서 한 번에 정리하는 것이다.특히나 이번 강의 자료는 상용화 할 앱에 실제 적용될 디자인이고 하니 디자인에 문외한인 개발자 분들에게 많은 도움이 될 것같다. build.gradle(Module :app) 파일 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.0.1' compile 'com.android.support:cardv..

안드로이드 앱 최초 실행시 바탕화면에 아이콘(Shortcut) 생성하기

안드로이드 앱 최초 실행시 자동으로 바탕화면에 아이콘(shortcut)을 생성해주는 코드다.SharedPreferences의 "check"라는 키를 이용해해당 키의 value가 비어있으면(isEmpty()) shortcut을 생성하고,그 후에는 "exist"라는 value를 채워준다. SharedPreferences는 이렇듯 간단한 ON/OFF 설정에 이용하면 좋다.사용법도 SQLDatabase보다 간단하며앱이 삭제되지 않는 한 계속 지속되기 때문이다. if(pref.getString("check","").isEmpty()) 이하 코드를 다르게 해서앱 최초 실행시 취할 액션을 마음대로 꾸며보는 것도 좋다. 12345678910111213141516171819202122232425//데스크탑 아이콘 생성p..

와이파이 브레이커 개발기 1편

내 앱들 중에서 이상하게 다운로드 수가 높은 앱이있다.이름은 와이파이 비번 모음. 예전에 와이파이 비번 뚫기 일때는 구글 무료앱 유틸리티 TOP 100안에 들기도 했는데,이름이 과장되었다는 이유로 구글에서 예고 없이 짤렸다. (이 시스템은 정말 마음에 들지 않는다.)인터넷과 카카오스토리에서도 앱의 캡쳐장면이 떠돌고는 했다. 기능적으로는 정말 단순한 앱이다.ListView에 와이파이 SSID와 패스워드를 뿌려주는 식이다. 앱을 만들기전에, 키워드 조사를 정말 잘 해야겠다는 생각이 든다.자신의 앱을 검색하려는 사람들이, 혹은 필요한 사람들이 검색 할 때제일 먼저 뜨는 검색어, 뜰만한 검색어를 파악하고 그것을 앱 이름에 끼워 넣는게 엄청난 도움이 됬다.문제의 "와이파이 비번 뚫기"도 마찬가지다. 아무튼 나는 ..

용산사 점괘 해석 어플 <안녕 용산사> 개발기

친구들과 대만 여행을 계획하는 중 나는 용산사 조사를 맡게 되었다! 용산사의 오묘한 신비스러운 건물 디자인과 구수한 향내도 정말 압권이지만 우리들끼리의 진정한 하이라이트는 점괘 뽑기였다. 내 소원에 대한 하늘의 답은 어떤지, 나말고도 여러사람들이 궁금해 했다. 용산사 점괘 해석 해달라고 네이버 지식인에 올려놓기도 하고, 카페에 올려놓기도하고 인스타를 이용하거나 중국어 잘하는 지인에게 카카오톡으로 묻기도 한다. 그런 수고를 좀 덜기 위해서 나는 이 앱을 개발했다. 어려운 앱은 아니다. 나도 3일만에 만들었고 그것도 디자인에 더 많은 시간이 갔다. 하지만 많은 사람들이 써주면 좋겠다! 용산사를 다녀오면서 나도 필요했던 앱이니깐. 디자인 측면에서의 도전 이번에는 SCViewPager를 이용하여 상당히 유려한 ..

안드로이드 화면 전환, 액티비티 간 정보 전송 (인텐트,Intent)

안드로이드에서 인텐트(Intent)는 기본이다.고등학교 때 100% 열정만으로 뛰어든 앱 개발에 가장 당황했던 것은 그 흔한 화면 넘기기 조차 자바 코드였다는 사실이다.특히나 그 때 자바 문법에 대한 지식이 1도 없어서 인텐트는 사용해보지도 못했다. (그래서 Tab으로 구현했는데 이것도 이상하네..)그래서 이번에는 인텐트에 대해서 정리를 해서 나처럼 화면전환을 못하는 사람에게 도움을 주려한다. 인텐트는 어떤 일을 할 수 있는가?인텐트는 A Activity에서 어떤 동작이 발생하면, B Activity를 실행하는 화면 전환의 기능을 할 수 있다.그리고 A Activity에서 발생하는 어떤 형태의 데이터(int,String,char,float,array...etc)를 B Activity로 넘길 수 있다. 인..

안드로이드 버튼 클릭 이벤트 처리 (Android Button Click Event)

안드로이드를 개발하면서 버튼을 클릭하면 나타나는 클릭이벤트를 구현하는 상황을 많이 마주한다!그럴때마다 나는 구글에 검색해서 코드 복붙을 했는데, 이번 기회에 한번에 정리한다.안드로이드 버튼 클릭 이벤트를 구현하는 방법은 다양하다. 그 중에서 4가지를 소개할텐데,아무거나, 편한대로 쓰면된다. activity_main.xml먼저 activity_main.xml 파일에 버튼이 하나 있다고 치자.버튼의 id 이름은 btn_start 이고, 버튼에는 start라고 적혀있다. 12345cs MainActivity.javaactivity_main.xml에 있는 버튼 이벤트를 적어주어야 하는 곳은setContentView(R.layout.activity_main) 이라는 코드가 있는 MainActivity.java 이..