개발 10

[마크 플러그인 강의] 플러그인 개발 전 알아두어야 할 것들

취미 삼아 마인크래프트(Minecraft) 플러그인을 개발해본적이있는데, 제대로 된 국내 자료가 잘없어서 아쉬웠던 기억이있습니다. 그래서 마인크래프트 플러그인을 만들기 전에 알아둬야 할것들을 정리 해 보려고합니다. 프로그래밍 언어를 아무것도 몰라요. 그래도 되나요? Java가 그래도 쉬운 언어이기때문에 C라도 할 줄 아신다면 충분히 가능합니다. 만약에 그냥 강의만 보고 따라서 타이핑 하겠다하시면 언어를 안배우셔도 됩니다. 응용을 하는건 눈치껏..ㅎㅎ 하셔야할겁니다. 마인크래프트 플러그인 개발 툴은 무엇인가요? Java를 편하게 다룰 수 있는 툴이라면 뭐든지 됩니다. 일반적으로 InteliJ와 Eclipse를 많이 사용하는 모습을 보실 수 있는데, InteliJ가 조금더 사용하기 편리해서 그걸 추천드립니다..

안드로이드 Fragment 상태를 저장하고 복구하는 Best practice 소개

오늘도 개발을하는 중 이미지를 불러오는 Fragment를 구현할일이 생겼다. (사실 비일비재하지만)이미지뷰가 onSaveInstanceState 메소드가 구현되어있지 않은 서드파티 이미지뷰였기 때문에 속도는 당연 느렸고,그래서 방법을 찾던 중 이 글을 보게되었다. 유용할 것 같아서 공유한다! 심심할때마다 번역해야겠다. > 원문 출처https://inthecheesefactory.com/blog/fragment-state-saving-best-practices/en

마인크래프트 앱 개발기 8편 <Markdown에 관하여>

새로운 기능, 패치 노트요즘 추가하고 있는 기능은 패치노트라고 하는 버전 히스토리를 보는 기능이다.마인크래프트 게임은 특이하게도 매번 업데이트를 할 때마다 유저들이 패치노트를 주의깊게 살펴보기에 필요성이 있겠다 싶어 넣었다. 저번에 앱에 추가한 서버 확인 기능은 잠시 안보이게 넣어두고이번 패치노트를 그 자리에 끼워 넣으려고 한다.서버 확인 기능을 접은 이유는 아래에 따로 적도록 하고, 패치노트 기능에 대해서 적어보겠다. 패치노트 기능은 저번에 블로그에서도 찬양했었던 FireBase를 이용해 구현했다.마인크래프트 패치는 자주되는 편이기 때문에 그때그때마다 실시간으로 업데이트 해주기 위해서 Firebase Storage에 마크다운으로 적은 패치노트를 업로드한 뒤 Firebase Realtime Databas..

마인크래프트 가이드 앱 개발기 2편 "왠 Python?"

오랜만에 2편을 써본다. 아무도 안기다렸지만 ㅎㅎㅎㅎ '~'방학을 맞아서 유저들에게 약속했던 7월 대규모 업데이트를 하려 다시 안드로이드 스튜디오를 켰다.그동안 코딩스타일을 배워 한 층 더 업그레이드 된 눈으로 다시 코드를 보니 엉망이었다.앱 특성상 아이템을 추가할 일이 많은데, 아이템 추가하기가 번거롭고 힘들게 되어있었다.그래서! 더욱 편하게 아이템을 추가하기 위해 나에게 조금 더 나은 인터페이스를 제공하기로 했다. 리팩토링이전에는 아이템을 추가하려면 layout에서 아이템 아이콘을 추가하고, 개별 아이템마다 onclick="아이템이름"다는작업을 한 뒤에, 아이템 정보가 담겨있는 ItemDB를 모아놓은 ArrayList인 ItemDBList에도 정보를 업데이트 해야 했다.그러나 아이템이 300개가 넘다..

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

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

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

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

UX, 사용자 경험에 관한 이야기 <사용자를 생각하게 하지마!(Don't make me Think!)>

나는 요즘 웹 디자인을 공부하고 있다.웹 디자인은 앱 디자인과는 조금 다른 점이 있다.웹은 한 페이지 당 보여주는 정보의 양이 앱에 비해 월등히 많고,웹 애플리케이션 하나 당 담고있는 페이지 수도 많다.때문에 많은 정보를 효율적으로 전달하기 위한 생각, 즉 '좋은 사용자 경험을 위해서는 어떻게 디자인 해야할까?'라는 식의 고민들이 생기기 시작했다.다행스럽게도, 이러한 고민들은 나보다 앞서 많은 디자이너,개발자,기획자가 해 주었고사용자 경험의 바이블이라 불리는 라는 책이 탄생하게 되었다. 우리 모두 웹을 책 첫 바닥을 읽듯이 정독하지 않기에저자 스티브 크룩은 '명료성'을 가장 중요하게 생각했다.불과 0.몇 초 사이에 그 페이지의 성격,기능을 알 수 있어야 하고불과 0.몇 초의 모호함,망설임 조차도 용서되지..

나/독후감 2016.03.03

마인크래프트 가이드 앱 개발기 1편

마인크래프트 가이드 앱 개발기 1편 마인크래프트 가이드 앱 개발기 1편이다. 마인크래프트 가이드 앱이 뭔지 간략히 설명하고 역사와 지금 상태를 기록하겠다! 이 앱은 MOJANG 이라는 게임회사에서 개발한 마인크래프트라는 게임을 쉽게하기 위한 앱이다. 아니 얼마나 게임이 어려우면 쉽게하기 위한 앱이 있냐고...? 게임이 어렵지는 않지만 마인크래프트는 샌드박스형 게임(유저가 마음대로 다 할수있는)이기 때문에 외우거나 기억해둘 사항이 많다. 사진처럼 활을 하나 만들기 위해서 거미줄 3개워 막대기 3개를 저 위치 그대로 놓아야한다. 나도 마인크래프트를 하다가 매번 조합법을 검색하기 귀찮아서 만들기는 했다. 그리고 데이터를 모두 소스 안에 두면되어서 그다지 큰 기술이 필요하지 않았다. 버튼, 인텐트 정도만 알면 ..

이상용 <사용자 경험 이야기>

디씨,오유가 GUI 낡은데도 불구하고하루에도 수백개의 글이 올라오는 이유는?익명성이라는 히든 니즈를 가지고 있기 때문이다. 디자인을 사용자 관점으로 먼저 바라보고그에따른 니즈를 발견하여 사용자에게그 경험을 제공하는것이 사용자경험(UX)다. UI/GUI 개선 등의 단순한 변화가 아닌근본적인 사용자가 원하는 목표를 발견하여 제공하는 것사용자 중심에서 서비스,컨텐트,화면 구성, 정보 디자인등을 설계 및 발굴 사용자가 진정으로 좋아하고즐기며 소비할 수 있는 니즈 발굴사용자의 니즈가 어디에 있는가? 던져보아야 할 질문들-타깃 사용자들은 어떤 장비를 사용하여 접근?-타깃 사용자들이 가장 많이 사용하는 기능?-타깃 사용자들이 주로 사용하는 시간대?-타깃 사용자들의 연령대 혹은 학습 레벨? 분석도구-어피니티 다이어그램..

나/독후감 2016.01.29

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

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