라벨이 [Mobile]인 게시물 표시

android 데이터바인딩 활용(3) - BindingAdapter

이미지
데이터바인딩에서 BindingAdapter를 사용하는 법을 알아보겠습니다. BindingAdapter는 쉽게 xml을 통하여 함수를 호출 할수 있게 제공합니다.  android 데이터바인딩 활용(1)의 RecyclerView소스에 이어서 진행 하겠습니다. public class ColorData { int color ; private int nIdx ; public ColorData ( int nIdx ) { this . nIdx = nIdx ; } public int getColor ( ) { int nNum = nIdx % 3 ; switch ( nNum ) { case 0 : color = Color . RED ; break ; case 1 : color = Color . BLUE ; break ; case 2 : color = Color . YELLOW ; break ; } return color ; } } 우선 샘플로 사용할 Data클래스 하나를 만들어 놓겠습니다. public class SampleDataBindingAdapter { @ BindingAdapter ( { "bind:bgcolor" } ) public static void backgroundColor ( View view , int nColor ) { view . setBackgroundColor ( nColor ) ; } }

android 데이터바인딩 활용(2) - Event연동

데이터바인딩 활용에서 Event 연동하는 법을 알아보도록 하겠습니다. 기존에 클릭이벤트를 연동 할때 어떻게 쓰셨나요? btn.setOnClickListener(new View.OnClickListener() { @ Override public void onClick ( View view ) { } } ) 위와 같이 View 객체에 직접 이벤트를 만들어 주거나 라이브러리등을 사용하여 다양한 방법으로 구현 할수 있었는데요. 데이터바인딩을 활용하여 xml에서 함수를 직접 호출 할수 있습니다. < data > < variable name = " activity " type = " kr.co.proj.test.swiperefreshsample.DataBindingActivity " /> </ data > 가장 첫번째 해줄일은 xml에 data와 variable태그를 추가합니다. <variable내에 있는 정보> name : xml내에서 참조할 변수 이름 type : 참조할 클래스 public void btnClick(View view) { Toast . makeText ( this , "Btn Click" , Toast . LENGTH_SHORT ) . show ( ) ; } Activity에는 버튼 이벤트가 발생 하였을때 함수를 추가 합니다. < Button android : id = " @+id/btn " android : layout_width = " 100dp " android : layout_height = " 50dp

[오픈 API] 앱 다운로드 순위를 가져오자 1부 (AppApnnie Api)

이미지
여러분들이 만드신 앱 들의 다운로드 수는 어떻게 관리하고 계신가요? ios는 아이튠스커넥터, andorid는 콘솔 페이지에서 각각 정보를 얻고 계실꺼예요. 앱애니 라는 전세계에서 가장많이 사용하는 앱통계 사이트를 이용하여, 다운로드 수를 가져올수 있습니다. 이번 주제는 총 3부로 나눠보았습니다. [오픈 API] 앱 다운로드 순위를 가져오자 1부 (AppApnnie Api) [오픈 API] 앱 다운로드 순위를 가져오자 2부 (모바일 앱 설계) [오픈 API] 앱 다운로드 순위를 가져오자 3부 (모바일 앱 구현) 앱애니(https://www.appannie.com/kr)는 모바일 앱의 다운로드, 수익, 등급, 사용량, 검색어 등에 대한 소비자 및 경쟁 정보를 생성하여 앱 마케팅 지출 최적화, 파트너 및 투자 전략 및 제품 로드맵 우선순위 결정에 대한 의사 결정을 지원하는 사이트 입니다. 출처 : 위키피디아 앱 애니에서 지원하는 API는 다음과 같습니다. 우리는 여기서 App Sales 에서 앱 다운로드 수를 가져오는 API를 호출해야 합니다. Account Connection Sales App Sales App Ranks App Reviews App Ratings App Features App Details Platform List Country List Category List Currency Account Connections List Account Connection App List App IAP List Shared Apps List 우선 AppAnnie  Api를 사용하기 위해서는 아래의 절차가 필요합니다. 1. 회원가입 2. 애플, 안드로이드 스토어 계정 연동 3. API 발급 4. API 문서를 통해 API요청 회원가입 후 계정연결 페이지로 가서, 각 스토어를 연결합니다. 계정연결 그후 좌측 메뉴에서 API 키를 눌러 APIM를 발급을 받습니다.

android 데이터바인딩 활용(1) - include, Adapter

이미지
지난 포스트에 데이터바인딩을 사용하는 방법을 알아보았습니다. 오늘은 추가적으로 활용 할수 있는 부분을 알아보도록 하겠습니다. xml 레이아웃을 include해서 사용할 경우 참조 방법과 RecyclerView에서 사용 하는 법을  간단한 예제를 통해서 구현해 보겠습니다. <!-- item_sample.xml --> < layout xmlns : android = " http : // schemas.android.com /apk/res/android " > < RelativeLayout android : layout_width = " match_parent " android : layout_height = " wrap_content " > < TextView android : id = " @+id/text_Item " android : layout_width = " match_parent " android : layout_height = " 50dp " android : gravity = " center " android : text = " Text Item " /> </ RelativeLayout > </ layout >  우선 include와 adapter에서 사용할 TextView를 가지고 있는 레이아웃 파일을 추가 하였습니다.   < include android : id = " @+id/inc_Item " layout = " @layout/item_sample " />  메인 레이아웃에 좀전에 만

android studio에서 VCS 불필요한 파일 제외 시키기

이미지
android 프로젝트 형상관리 위하여 svn, git을 사용하다 보면 프로젝트 빌드시에 생성되는
 파일들로 인하여 conflict로 고생한 흔히 있을 것 입니다.


 이클립스에서 개발 하던 시절에도 svn, git을 사용할때 빌드시 생성되는 파일들은 목록에서
제거하기 위하여 여러가지 작업을 해주었던 기억이 납니다.
 android studio에서도 이런 파일들을 대상 목록에서 제외 시킬수 있습니다.


 설정하는 방법을 하나씩 따라가보도록 하겠습니다.


 Mac : 좌측 상단의 Android Studio -> Prefrences... -> Version Control -> Ignored Files
 Window : File -> Settings -> Version Control -> Ignored File Version Control메뉴 선택후 하단 추가(+)버튼을 선택해 주세요.


 제외시킬 파일, 폴더, 마스크를 추가해주시면 됩니다.
 Ignore specified file : 파일 설정

 Ignore all files matching : 폴더 설정
 Ignore all files matching : 마스크설정(해당 텍스트가 해당되어 있는 파일) 

File: *.iws (select Ignore all files matching option to add this pattern)
 File:.idea/workspace.xml
 File: .gradle
 Directory: .idea/libraries/
 Directory: build/
 File: local.properties
 Directory: app/build/ (this must be for every module your project has)
 File: *.iml
 File: .DS_Store
 설정할 값 입니다.
 
 
 위와 같이 설정을 해주시면 끝입니다.
 svn, git등 Ve

[iOS 개발팁] UITextView에 placeholder 추가하기

텍스트 입력할 수 있는 UITextView, UITextField를 사용하다보면, "제목을 입력해주세요", "내용을 입력해주세요" 등의 placeholder 값을 넣을 경우가 많습니다. 기본적으로 UITextField에서는 placeholder 프로퍼티를 제공하지만, UITextView에서는 placeholder 제공하지 않지 않습니다. 내용과 같은 많은 텍스트를 입력해야하는 경우에는 UITextViewDelegate를 사용하여, 텍스트를 입력받기전, 입력받은 후에 "내용을 입력해주세요" 텍스트를 넣어주었다가, 지워주어야합니다. 굉장히 불편한데요, UITextView를 상속받아 클래스를 만들고, placeholder 와 같은 기능을 구현하여 이용하면 편리합니다. 먼저, UITextView를 상속받은 클래스는 만들고,  PlaceholderTextView.h  placeholder 변수를 생성합니다. ============================================================================= #import <UIKit/UIKit.h> @interface PlaceholderTextView : UITextView @property ( strong , nonatomic ) NSString *placeholder; @end ============================================================================= PlaceholderTextView.m 구현부의  drawRect 함수에서 UILabel를 만들어서 UITextView 위에 Add해줍니다. 그리고 UITextView의 값을 변경할때 함수로 호출할수 있도록 노티피케이션으로 등록합니다. ======================================

[iOS 개발팁] 스토리보드 분리하기

이미지
iOS를 개발 시 Storyboard는 UI를 만들수 있는 편리한 도구 입니다. 하지만, 프로젝트가 커가면서, Storyboard에 UI를 계속 추가하다보면, 너무 많은 UI 때문에 Storyboard 로드가 느려집니다. 이를 방지하기 위해, Storyboard를 추가로 만들고 사용하는 팁을 알려드립니다. 우선 아래는 플랫폼사업팀에서 진행하는 아이프렌즈펫의 Main.Storyboard의 UI 들입니다. 현재 20개 이상의 화면이 Main.Storyboard에서 사용중이여서, 로드가 오래걸려서 짜증이 납니다. 플랫폼사업팀에서 진행중인 아이프렌즈펫 앱의 스토리보드  이번 아이프렌즈펫 1.9.0 버전, 스프린트에서는 "소모임" 이라는 기능을 추가하기 위해 기존 Main.Stroyboard 에 아래의 ViewController를 추가하였습니다. Main.Stroyboard 로드시에 너무 느려서 작업속도가 현저히 떨어집니다. "소모임" 기능은  하나의 작업단위로 스토리보드를 생성해서 관리하는할 필요가 있으므로, 소모임.Storyboard 파일을 신규로 만들고 Main.Storyboard 있던 ViewController들을 옮겨할 필요가 생겼습니다. 새로운 파일을 만들기 위해서, User Interface에서 Storyboard를 추가하였습니다. 추가된 소모임.Storyboard 에 Main.Storyboard 있던 ViewController들을 옮겼습니다. 파일을 로드하는데 훨씬 빨라졌습니다. 이제는 연결할 ViewController를 호출하는 부분에 코드를 입력하면됩니다. 아래는 "더보기" 화면입니다. "소모임" 메뉴를 통해 소모임에 관련된 ViewController를 연결해야 하므로, 해당 메뉴를 호출하는 함수에 추가된 소모임.stroyboard 를 연결해주면 됩니다. ==========================================

[iOS 강좌] 오픈소스로 쉽게 카메라 앱 만들기 - 3부 (필터)

이미지
[iOS 강좌] 오픈소스로 쉽게 카메라 앱 만들기 - 1부 (cocospods) [iOS 강좌] 오픈소스로 쉽게 카메라 앱 만들기 - 2부 (카메라) [iOS 강좌] 오픈소스로 쉽게 카메라 앱 만들기 - 3부 (필터) 이번 시간에는 카메라의 필터를 변경할 수 있도록하고, 촬영된 사진을 휴대폰의 저장을 해보겠습니다. 먼저 GPUImage에서 제공하는 필터를 카메라에 추가해보도록 하겠습니다. 많은 필터를 제공하고있는데요. iOSBlurFilter를 적용해보겠습니다. iOSBlurFilter 선택해서 해당 클래스를 들어가보면, 프로퍼티값을 확인 할수 있는데요. 설정된 필터에서 값만 변경해주면, 나만의 맞춤 필터를 완성할 수도 있습니다. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- #import "GPUImageFilterGroup.h" @class GPUImageSaturationFilter ; @class GPUImageGaussianBlurFilter ; @class GPUImageLuminanceRangeFilter ; @interface GPUImageiOSBlurFilter : GPUImageFilterGroup {     GPUImageSaturationFilter *saturationFilter;     GPUImageGaussianBlurFilter *blurFilter;     GPUImageLuminanceRangeFilter *luminanceRangeFilter; } /** A radius in pixels to use for the blur, wit