Android 35

[React-Native] 1. M1 Mac에서 React-Native 환경 구축

필자가 사용하는 MAC OS에서 React-Native 개발 환경을 구축하는 방법에 대해 정리해놓고자 한다. React-Native 개발 환경에는 크게 Expo CLI와 React-Native CLI, 2가지가 있다. 그 중에서 React-Native CLI를 구축하는 방법을 정리한다. 1. Homebrew 설치 Homebrew는 Mac에서 필요한 애플리케이션이나 개발 환경 등을 설치하는 데 유용하게 쓰인다. Homebrew에 대한 설치 방법은 Homebrew 홈페이지에서도 확인할 수 있다. 다음 코드를 Terminal 에 입력하여 Homebrew를 설치한다. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEA..

ReactNative 2022.03.21

[모바일 프로그래밍] Flutter 설치

1. Android Studio에 Flutter Plugin 설치 File - Settings - Plugins - Flutter 검색 - Install 2. Flutter SDK 설치 Flutter 홈페이지 설치 주의사항 환경 변수 등록 flutter/bin 디렉토리 경로를 Path에 추가한다. 잘 구성됐는지 확인하기 : flutter doctor 프롬프트 창을 열고 flutter doctor 명령어를 실행한다. 잘 설치되는 듯 하지만, Android Toolchain 오류가 발생한다. Flutter 공식 홈페이지에 이에 관한 해결법이 나와있다. Android Toolchain 오류 해결 Android SDK Tools(Obsolete)을 설치완료하면 다시 flutter doctor 명령어를 실행한다...

KoreaTech 2020.05.26

[모바일 프로그래밍] Layout Inflation

setContentView() Layout을 구성할 때 보통 XML 파일에서 Layout을 정의한다. 그러면 XML 파일에서만 Layout을 생성할 수 있는 것일까? 그건 아니다. 코드(Java or Kotlin) 안에서도 Layout을 생성할 수 있다. LinearLayout mainLayout = new LinearLayout(this); // Layout 객체 생성, 변수 지정 Button button1 = new Button(this); // Button 객체 생성, 변수(button1) 지정 button1.setText("Button Created by Code"); // button1 객체 참조와 조작(메소드 호출) mainLayout.addView(button1); // mainLayout ..

KoreaTech 2020.04.20

[모바일 프로그래밍] 비만도 계산기 앱 만들기

Anko 라이브러리 Kotlin 개발자가 개발한 Kotlin 전용 Android 개발 라이브러리이다. 그러나 현재는 더 이상 사용되지 않고 있다. this page로 들어가보면 Anko 라이브러리가 더 이상 쓰이지 않는 이유를 볼 수 있다. 그리고 Anko를 대신할 라이브러리들을 소개해준다. 지금은 Anko 라이브러리를 써보자... dependency에 Anko 추가한다. implementation "org.jetbrains.anko:anko:$anko_version" 현재 anko_version이라는 변수값이 존재한다. 이 변수값은 Project 레벨의 Module에서 값을 추가해준다. 그리고 Sync Now 버튼을 클릭한다. Main Activity Layout 1. 키(height)를 입력할 Edi..

KoreaTech 2020.04.02

AMD 에서 Android HAXM 오류 문제 해결

데스크탑을 새로 맞추면서 Android Studio에서 AVD를 돌려보려고 하는데 Android Version을 선택하는 창의 모서리에 Install HAXM 이라는 하이퍼링크가 활성화 되어있었습니다. Version은 당연히 Download가 안되었고 저걸 클릭하여 설치해야 하나보다 싶었는데... 아래와 같이 오류가 떴습니다. 오류 상황에 캡처할 생각을 하지 못하여 다른 블로그의 사진을 캡처하여 왔습니다. 출처 : https://codedragon.tistory.com/7747 대충 오류 내용을 읽어보면 Intel의 Hyper-V 기능을 활성화하지 못했다는 그런 문구 같았습니다. 여기서 제가 찔끔했던 부분은 이번에 맞춘 데스크탑의 CPU는 AMD의 Ryzen 이라는 점이었습니다. 그래서 CPU의 회사가 ..

NotePad 2020.02.10

[Android] APK 용량 줄이기

APK Size 줄이기 1. ProGuard 를 사용하자. ProGuard 는 사용하지 않는 Java 코드를 제거해준다. Code foot prints 를 줄이는데 굉장히 효과적이다. 2. Split Apk 사용하자. 특정 해상도나, ABI 에 따라 별도 Apk 를 만들 수 있다. 특히 앱 사이즈를 크게 줄여준다. 3. 최종 Apk(+ProGuard) 이후에 Facebook's ReDex 를 이용해 최적화 하자. Code Size 도 줄여줄 뿐만 아니라, 잠재적인 성능향상에도 도움이 된다. 4. 사용하지 않는 XML files 를 확인하자. Lint 같은 툴들이 사용하지 않는 리소스를 체크하고 지워준다. 5. 최대한 Resource 를 줄이자. Gradle 의 shrinkResources 를 사용..

Android Developer 2019.10.08

[Android] 난독화(Proguard)

Proguard 코드 난독화 및 APK 최적화를 위한 도구 왜 필요한가? 코드 난독화를 통해 디컴파일시 본인의 코드가 노출되는 것을 방지 불필요한 메서드를 제거하여 멀티덱스를 피할 수 있다. MultiDex? 안드로이드 앱을 구성하는 코드는 컴파일 되어 덱스(Dex) 파일로 만들어 진다. 하나의 덱스 파일은 최대 65536개 의 메소드만 참조 할 수 있다. 만약 프로젝트의 코드가 65536개의 메소드를 초과하면 여러 개의 덱스파일 이 생성된다. 멀티 덱스를 사용하여 컴파일 할 수 있지만, 빌드 과정에서 앱 내의 파일을 여러 덱스파일로 나누어야 하므로 빌드 속도가 느려지고 APK의 용량이 커진다. Proguard 와 Non-Proguard 비교하기 디컴파일러 : jadx v0.9.0 사진 위에 걸린 링크를..

Android Developer 2019.05.14

[Android] OpenSource, ButterKnife, Firebase

Open Source Open Source Library? Open Source License를 가진 Library 누구나 제한 없이 재사용, 수정, 사용 할 수 있다. 대부분의 오픈소스 소프트웨어는 GNU General Public License 를 가지고 있다. GNU General Public License는 대표적인 Open Source License 이다. ButterKnife 뷰를 쉽게 바인딩 해주는 라이브러리 1. ButterKnife Download butterknife github 에 나온 Download 가이드를 따라서 compileOptions 와 dependencies 를 추가합니다. !!!! 그런데 !!!! 이런 빌드 오류가 발생하네요....?? 그러면 오류문이 하라는대로 해보겠습..

Android Developer 2019.05.02

[Andoird] GIF를 이용한 Splash Activity 만들기

dependencies 수정 후 'sync' GIF 이미지를 'raw' 디렉토리에 저장해준다. drawable 폴더에 넣으면 안드로이드 스튜디오는 gif 파일을 인식하지 못한다. LoadingActivity.class package com.example.communityapplication; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.widget.ImageView; import com.bumptech.glide.Glide; import..

Android Developer 2019.04.12

[Android] Android Design Pattern

출처 : https://academy.realm.io/kr/posts/eric-maxwell-mvc-mvp-and-mvvm-on-android/ Intro 안드로이드 앱을 논리적 구성 요소로 체계화하려는 방법이 지속적으로 발전하였다. MVC 패턴을 초석으로 보다 모듈화되고 테스트 가능한 패턴으로 발전해 왔다. MVP와 MVVM은 MVC를 대체하기 위한 대안책이다. 하지만 개발자들은 어떤 것이 안드로이드에 적합한지 의견을 일치하지 못했다. MVC ( Model View Controller ) Model 앱의 데이터 + 상태 + 비즈니스 로직 이다. 앱의 두뇌역할이며 뷰나 컨트롤러에 묶이지 않으므로 많은 곳에서 재사용할 수 있다. View 모델의 표현 이다. 사용자가 앱과 상호작용할 때 컨트롤러와 통신하는 ..

Android Developer 2019.04.09

[Android] Foreground, Background, Timer

Foreground, Background Foreground 사용자와 상호작용이 가능한 상태의 프로세스 ( 화면에 직접적으로 보이는 프로세스) Background 겉으로는 보이지 않는 프로세스 공간 주로 'Service' 기능이 많이 실행된다. Android 8.0 (Oreo) Background Execution limits 백그라운드에서 실행되는 어플리케이션들이 기기의 리소스를 많이 소모하는 것을 개선하기 위해 제한하는 것이다. 백그라운드 서비스 제한 : 앱이 유휴 상태인 경우 백그라운드 서비스의 사용이 제한된다. 유휴상태 : 주변장치들의 입력과 출력이 없는 상태 브로드캐스트 제한 : 매니페스트에 등록한 암시적 broadcast 를 받을 수 없다. (약간의 예외는 있다) Android 8.0 이하라도..

Android Developer 2019.04.02

[Android] ListView, Navigation Drawer

ListView ( https://developer.android.com/reference/android/widget/ListView ) ListView란? 수직적으로 스크롤 할 수 있도록 뷰들을 보여주는 기능 최근 생성된 뷰는 이전에 생성된 뷰의 아래 에 위치한다. 좀 더 개선된 ListView를 구현하고 싶다면 RecyclerView 를 사용한다. ListView의 layout XML AdapterView 에서 상속 받은 객체이다. 스크롤 했을 때 새로운 뷰를 보여주는 것과 같은 기능이 필요할 때 ListAdapter 에 요청을 한다. list 안에 item 을 보여주기 위해서 setAdapter 메소드를 호출 한다. GridView RecyclerView ListView에 Flexibility 와 ..

Android Developer 2019.03.24

[Android] Fragment

Fragment 동작 또는 Activity 내에서 사용자 인터페이스의 일부 하나의 액티비티에 여러 개의 프래그먼트가 있을 수 있고, 하나의 프래그먼트를 여러 액티비티에서 사용 할 수 있다. 자체 수명 주기, 자체 입력 이벤트를 가진다. 항상 프래그먼트 내에 포함되어 있어야 하며 프래그먼트의 수명 주기는 호스트 액티비티의 수명 주기에 직접적으로 영향을 받는다. Fragment 디자인 철학 목적 : 태블릿과 같은 큰 화면에서 보다 역동적이고 유연한 UI 디자인을 지원 각 프래그먼트가 레이아웃을 따로 정의하고 자기만의 수명 주기 콜백으로 자기 나름의 동작을 정의함 재사용을 염두에 두고 디자인하며 한 프래그먼트를 또 다른 프래그먼트로부터 직접 조작하는 것은 삼가야 함. Fragment 생성 최소 구현해야 하는 ..

Android Developer 2019.03.13

[Android] Naming

Basic Naming Java Class Naming Package : 모두 소문자 로 작성한다. EX > com.sun.eng Classes : 대문자로 시작 하며, 명사형 이다. EX > class Raster Interface : 대문자로 시작 하며, 형용사형 이다. EX > interface Stroing Method : 동사형 이며, 소문자로 시작 한다. EX > run() / getBackground() Variables : 소문자로 시작 한다. EX > int i / float myWidth Constant : 모두 대문자 로 작성한다. EX > static final int MIN_WIDTH=4 Camel Case : 소문자로 시작할 경우 적용되는 작성 방식 이름이 두 가지 단어 로 혼합..

Android Developer 2019.03.01

[Android] 정의, 버전 및 특징, 액티비티

[Android] 1. 자바 기반 안드로이드 개발 언어 : 자바, 코틀린 2. 오픈 소스 안드로이드는 오픈소스 기반이며 아파치 2.0 라이센스 를 사용한다. 3. 완벽한 컴포넌트 개발자가 제공된 소스를 사용하면 스마트폰 플랫폼이 그대로 만들어지므로 그 위에 올라가는 앱만 만들면 된다. 4. 높은 점유율 5. 높은 이식성 리눅스 기반으로 높은 이식성을 가지고 있으며 새로운 하드웨어의 기능을 쉽게 연동할 수 있다. 모바일 뿐만 아니라 태블릿, PMP 등의 각종 통신 기기에 사용될 수 있다. 6. 쉬운 연동 안드로이드로 만든 앱은 다른 앱에서 제공하는 기능을 쉽게 사용 할 수 있다. [버전 및 특징] A : Apple pie - Android 1.0 안드로이드 마켓, 웹브라우저, G메일, 구글지도, 구글검색,..

Android Developer 2019.02.23
반응형