본문 바로가기
반응형

Programming64

Android Studio에서 나만의 Library 만들어보기 안드로이드 앱 개발을 하다보면 다양한 오픈소스 라이브러리를 이용할 때가 많다. 주로 Github에서 Library를 받거나 Gradle import 이용하면서 가끔씩 내가 만든 소스를 Library화 시켜보면 어떨까 라는 생각을 하게됐다. 말 나온 김에 한 번 만들어보자! Android Studio를 이용하여 Library 프로젝트를 생성하고 산출물인 AAR(Android Archive package) 파일 생성하는 과정까지 실습해보겠다. 1. 새 프로젝트 생성 첫번째로, Android Studio로 Library 프로젝트를 생성해야한다. New Project를 클릭하여 새로운 프로젝트를 생성한다. activity는 있어도 되고 없어도 된다. 여기서는 테스트용이므로 No Activity 선택. 2. Gr.. 2015. 12. 10.
[파이썬(Python) 실습] 반복문 사용하기 (for문, range, while문) Python의 반복문에 대해서 알아보자. 기존의 C나 JAVA에서는 For, While, Do while 문 등의 반복문을 이용했었다. Python도 별반 다르지 않게 For, While 이 반복문으로 사용된다. 하지만 약간의 문법적 차이가 있다. 예제를 통해서 알아보자. "화이팅" 을 8번 출력하라 정말 간단한 예제이다. While문을 사용한다면 i = 0 while i < 8: print("화이팅") i = i + 1; For 문을 사용한다면 for i in range(0, 8): print("화이팅") 위와 같이 표현할 수 있다. 형태를 보면, while (True or False 가 되는 조건식) : for (변수명) in (범위 또는 배열의 변수) :위와같이 표현한다. 마지막에 공통적으로 :을 .. 2015. 8. 10.
안드로이드 Layout에 gradient로 그림자효과 주기 (Layout Shadow gradient) Layout 혹은 View에 살짝 그림자효과를 주고 싶을때가 있다. 롤리팝(API 21) 이상은 elevation 이라는 속성이 추가되어 손쉽게 그림자 추가가 가능하지만 롤리팝 이하의 버전인 경우 수작업으로 그림자를 추가해야한다. 그림자는 추가하는 방법에는 여러가지가 있다. 나인패치를 이용하는 방법, 코드로 적용하는 방법 등등.. 여러방법들 중 Shape와 gradient 속성을 xml에 정의하여 그림자를 표시하는 방법이 가장 괜찮을듯 하다. 다만 그림자가 들어갈 새로운 영역(View나 layout) 을 별도로 만들어줘야하는게 단점이라면 단점. 그림자 넣을 영역을 layout xml에 만든다. 반공간이므로 View나 LinearLayout 등 아무거나 가능. 원하는 그림자의 크기를 height에 입력한다.. 2015. 8. 6.
안드로이드 adjustPan EditText와 Keyboard 와의 간격문제 (Android keyboard cut EditText when adjustpan) Activity 내에서 EditText를 추가 해야할 경우가 많다.매번 키패드가 올라왔을 때 화면이 어떻게 보여지는지를 항상 고려해야만 한다.대표적으로 adjustPan, adjustResize 방식이 있다.(이 속성들은 manifest.xml 에서 activity 에 정의 또는 직접 소스로 설정한다) 보통 adjustResize 방식을 많이 사용한다.카카오톡 대화창 같은 방식이다. 화면 자체를 그대로 사용하면서 키패드를 활성화한다.하지만 이번에 개발할 우리 캘린더 앱의 경우, adjustResize 를 사용하지 않는다.왜냐??? 위 스크린샷처럼 Status bar 를 투명화해주는 속성인 windowTranslucentStatus 를 이용하기 때문이다.안드로이드의 신종 버그일까이 속성을 사용하면 adju.. 2015. 8. 6.
[파이썬(Python) 실습] 입력과 출력 (RGB값 16진수로 변환) 파이썬(Python) 문법을 차근차근 살펴보다가 정리해본다. 파이썬의 Input은 영어단어 그대로 input() 메서드를 이용한다. 출력은 print(). 정말 이렇게 직관적일수가.... 입력과 출력을 이용한 RGB값 16진수 HEX 값으로 변환 하는 예제를 정리해보자. 문제 RGB값을 입력 받고, 그에 대응하는 16진수 HEX값을 출력해라. HEX값은 &#39;#&#39; 과 3개의 대문자 16진수 숫자로 이루어져야한다. 각 세개의 16진수는 모두 두 자리를 가져야한다. (ex : 186 -> BA, 7 -> 07, 211 -> D3) 예를들어, 186 7 211로 입력을 받으면 #BA07D3 이와 같이 출력되야 한다. 소스 def main(): r = input() g = input() b = inp.. 2015. 8. 4.
파이썬(Python) 에 numpy 설치하기 For Windows 기계학습 실습을 위해 Python의 numpy 라는 라이브러리를 설치해야한다. 윈도우에서 Python Library인 numpy 를 설치해보자. 1. numpy 설치할 파일을 다운받는다 numpy 파일 다운받기 링크 : [http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy (http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy) numpy 1.9.2 등등 여러 항목들 중에 Python3.4 버전을 설치했으므로 numpy‑1.9.2+mkl‑cp34‑none‑win32.whl 를 클릭하여 다운받았다. python 명령어중 pip 라는게 있다. python install package 의 약자인데 pip 명령어를 이용하여 방금 다운받은 nu.. 2015. 8. 3.
파이썬(Python) 3.4.3 윈도우에 설치 무작정 따라하기 내일부터 기계학습 여름캠프가 시작된다.기계학습 관련 수업을 듣고 실습하는데 Python으로 이용한다고 해서 미리 설치를 해보려고 한다. Python 3.4.3 설치하기 (for Window) 1. 파일 다운 받기 Python 3.4.3 다운받기 : https://www.python.org/downloads/windows/ 위 링크를 클릭하여 홈페이지에 들어간다.스샷처럼 Downloads 메뉴에서 Python 3.4.3 을 클릭하여 설치파일을 다운받는다. 2. 설치하기 Install for all users 선택한 후 Next Python 을 설치할 경로를 정한다.아마 기본값으로는 C\Python32\ 폴더로 지정되어있을 것이다. 원하는 곳으로 지정한 후 Next.나는 E\Python32\ 로 지정하였다... 2015. 8. 2.
디자인패턴 - 스트레티지 패턴(Strategy Pattern) 프로그래밍을 하면서 디자인패턴에 관한 지식이 없는 상태로 개발을 하다보니, 굉장히 비효율적으로 소스를 작성하고 있는 나 자신을 많이 보게 된다. 처음에 원하는 기능을 구현하는데까지는 문제가 없지만, 이후 수정사항이 발생할 경우 하나의 기능을 고치는 상황에도 많은 시간이 들고 예기치않은 오류들이 발생하더라. 효율적으로 설계를 하기 위해 패턴에 관한 책을 읽기 시작했다. 앞으로 한 패턴씩 공부하고 공부한 내용을 복습할 겸 간단하게 정리해서 올려보겠다. 1. 전략 패턴 정의 간단하게 말해 어떤 동작을 하는 로직을 정의하고 이것들을 하나로 묶어서(캡슐화) 관리하도록 하는 패턴이다. 로직을 사용하는 객체들은 자기의 입맛에 맞게 로직을 효율적으로 수정할 수 있다. 새로운 로직을 추가하거나 변경할 때 객체의 종류 수.. 2015. 7. 9.
Bitbucket 사용법 (안드로이드 스튜디오로 소스올리기) Bitbucket 회원가입하고 Branch만 생성해 놓은 상태에서 내 소스를 올리려고 한다.안드로이드 스튜디오랑 연결해서 Commit 할 수 있다고 하니 안드로이드 스튜디오 버전으로 올려보겠음. GIt 설치 일단 Git 관련 프로그램 부터 설치한다. 빨간색 링크를 클릭 설치파일을 받은 후 설치를 완료한다. 안드로이드 스튜디오 설정 안드로이드 스튜디오 메뉴에서 Setting -> Version Control -> Git 을 선택한다. Git을 설치했던 폴더로 가서 Git.exe 경로를 선택한 후 잘 연결이 되었나 Test 버튼을 클릭한다.위처럼 잘 실행된다는 다이얼로그를 확인할 수 있다. Git과 연결이 끝나면 안드로이드 스튜디오에서 바로 BitBucket에 접근할 수 있게하는 플러그인을 설치해야한다.역시.. 2015. 6. 24.
AppWidgetProvider 에서 onEnabled, onDisabled 가 호출되지 않을 때 위젯 생성 후, 삭제 후 어떤 액션을 하려고 했는데onEnable, onDisable이 호출이 안된다.뭐가 문제일까 했는데 답은 간단했다. Manifest 파일에서 위젯관련 intent-filter에 action 을 추가해줘야 한다. 기존 소스에는 UPDATE 만 선언해서 호출이 안됐던 것이다. 위와 같이 ENABLED, DISABLED 를 추가 2015. 5. 20.