[Angularjs 도입 선택 가이드]
본 문서는 네이버 개발자 블로그 hello world 를 통해서 공개되었습니다.
[문서개요]
이 문서는 AngularJS를 사용한 애플리케이션 개발을 계획하고 있거나 AngularJS 도입을 고려 중일 때 참고 할 만한 내용을 기술한다. AngularJS를 사용하는 방법을 다루지는 않는다.
이 문서의 모든 내용은 AngularJS 버전 1.3.x를 기준으로 작성되었다.
[Angularjs 도입 선택 가이드]
본 문서는 네이버 개발자 블로그 hello world 를 통해서 공개되었습니다.
[문서개요]
이 문서는 AngularJS를 사용한 애플리케이션 개발을 계획하고 있거나 AngularJS 도입을 고려 중일 때 참고 할 만한 내용을 기술한다. AngularJS를 사용하는 방법을 다루지는 않는다.
이 문서의 모든 내용은 AngularJS 버전 1.3.x를 기준으로 작성되었다.
AngularJS 2는 올해 릴리징된 프론트엔드 도구 중 가장 쿨하고 섹시한 도구라고 독자는 믿고있습니다.
AngularJS 2를 실무환경에 적용함으로 얻는 이점.
AngularJS 2와 1의 차이점과 성능.
그리고 ReactJS와 AngularJS 2를 비교하여 퍼포먼스 데이터를 보여줍니다.
마지막으로 AngularJS 2 사용을 위한 번들러(Bundler) 그 중 Webpack, Systemjs, JSPM에 대해서도 안내합니다.
해당 자료는 XECon 2016에 발표되었습니다.
(자마린안드로이드예제실습)현재 위치를 얻은 후 지도에 표시하기, GPS다루기, 마시멜로이후 권한 획득방법 구현_추천자마린학원/자마린교육탑크리에듀(구로디지털단지역3번출구 2분거리)
Android 개발자가 이용할 수있는 130 가지 이상의 고유 권한을 사용하여 응용프로그램에서 사용할 권한을 정확히 알기 어렵다. Android Marshmallow는 사용 권한을 단순화 할뿐만 아니라 필요한 사용 권한의 수를 줄이기 위해 응용 프로그램 사용 권한에 대해 완전히 새로운 방향을 제시하는 데 예제를 통해 알아보자.
폰접근 권한을 받아오고 GPS를 통해 위치 정보를 받아, 지도를 로딩하는 방법에 대한 실습
GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기Kenneth Ceyer
GDG DevFest 2017 Seoul
프론트엔드 모던 프레임워크 낱낱히 파헤치기 세션의 발표자료입니다.
이 발표자료에서는 여러분이 항상 궁금해 하신
프론트엔드 프레임워크의 삼총사
Angular, React, VueJS를 다차원적으로 깊이있게 비교하고 각각의 이점과 특화된 기능을 소개하고 있습니다.
이러한 프레임워크를 경험해보지 못한 분들을 위해 프레임워크 별로 특징부터 쉽게 접근하여 설명하기 때문에 경험 불문하고 가볍게 읽어 보실 수 있습니다.
안드로이드 앱 개발시 필요한 여러 기능, 여러분은 어떻게 구현하고 계신가요?
모든 기능을 이태리 장인처럼 한 땀 한 땀 구현할 생각에 고민하고 계시진 않나요?
이제 더 이상 혼자 고민하지 마세요.
전 세계의 개발자들이 모여 만들어가는 오픈소스 라이브러리와 함께라면, 더 이상 혼자가 아닙니다. 여러 사람들의 힘으로 만들어진 라이브러리를 사용하여 원하는 기능을 쉽게 구현하세요.
오픈소스 라이브러리에 필요한 기능이 없나요? 이제 당신이 주인공이 될 차례입니다.
필요한 기능을 추가하여 라이브러리를 향상시키세요!
이 세션에서는 앱 개발시 각 분야별로 유용하게 사용할 수 있는 오픈소스 라이브러리의 종류를 알아보고, 간단한 사용 방법을 알아봅니다.
더불어, 오픈소스 라이브러리에 기여하는 여러 방법에 대해서도 함께 알아봅니다.
GDG DevFest Seoul 2015
2016.11.5
패스트캠퍼스에서 8기 째 수강생을 모집 중인 '안드로이드 앱 개발 입문 캠프' 를 소개하기 위한 슬라이드입니다. 프로그래밍 입문자, 혹은 그에 준하는 실력의 분들에게 4주간 Java 프로그래밍을 알려드리고, 그 후 기초적인 수준의 안드로이드 앱을 4~5개 정도 직접 제작해보는 실습을 거칩니다.
- 자세히 보기: http://www.fastcampus.co.kr/dev_camp_adb
- 문의: 이은혜 매니저(02-517-0643)
AngularJS 2는 올해 릴리징된 프론트엔드 도구 중 가장 쿨하고 섹시한 도구라고 독자는 믿고있습니다.
AngularJS 2를 실무환경에 적용함으로 얻는 이점.
AngularJS 2와 1의 차이점과 성능.
그리고 ReactJS와 AngularJS 2를 비교하여 퍼포먼스 데이터를 보여줍니다.
마지막으로 AngularJS 2 사용을 위한 번들러(Bundler) 그 중 Webpack, Systemjs, JSPM에 대해서도 안내합니다.
해당 자료는 XECon 2016에 발표되었습니다.
(자마린안드로이드예제실습)현재 위치를 얻은 후 지도에 표시하기, GPS다루기, 마시멜로이후 권한 획득방법 구현_추천자마린학원/자마린교육탑크리에듀(구로디지털단지역3번출구 2분거리)
Android 개발자가 이용할 수있는 130 가지 이상의 고유 권한을 사용하여 응용프로그램에서 사용할 권한을 정확히 알기 어렵다. Android Marshmallow는 사용 권한을 단순화 할뿐만 아니라 필요한 사용 권한의 수를 줄이기 위해 응용 프로그램 사용 권한에 대해 완전히 새로운 방향을 제시하는 데 예제를 통해 알아보자.
폰접근 권한을 받아오고 GPS를 통해 위치 정보를 받아, 지도를 로딩하는 방법에 대한 실습
GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기Kenneth Ceyer
GDG DevFest 2017 Seoul
프론트엔드 모던 프레임워크 낱낱히 파헤치기 세션의 발표자료입니다.
이 발표자료에서는 여러분이 항상 궁금해 하신
프론트엔드 프레임워크의 삼총사
Angular, React, VueJS를 다차원적으로 깊이있게 비교하고 각각의 이점과 특화된 기능을 소개하고 있습니다.
이러한 프레임워크를 경험해보지 못한 분들을 위해 프레임워크 별로 특징부터 쉽게 접근하여 설명하기 때문에 경험 불문하고 가볍게 읽어 보실 수 있습니다.
안드로이드 앱 개발시 필요한 여러 기능, 여러분은 어떻게 구현하고 계신가요?
모든 기능을 이태리 장인처럼 한 땀 한 땀 구현할 생각에 고민하고 계시진 않나요?
이제 더 이상 혼자 고민하지 마세요.
전 세계의 개발자들이 모여 만들어가는 오픈소스 라이브러리와 함께라면, 더 이상 혼자가 아닙니다. 여러 사람들의 힘으로 만들어진 라이브러리를 사용하여 원하는 기능을 쉽게 구현하세요.
오픈소스 라이브러리에 필요한 기능이 없나요? 이제 당신이 주인공이 될 차례입니다.
필요한 기능을 추가하여 라이브러리를 향상시키세요!
이 세션에서는 앱 개발시 각 분야별로 유용하게 사용할 수 있는 오픈소스 라이브러리의 종류를 알아보고, 간단한 사용 방법을 알아봅니다.
더불어, 오픈소스 라이브러리에 기여하는 여러 방법에 대해서도 함께 알아봅니다.
GDG DevFest Seoul 2015
2016.11.5
패스트캠퍼스에서 8기 째 수강생을 모집 중인 '안드로이드 앱 개발 입문 캠프' 를 소개하기 위한 슬라이드입니다. 프로그래밍 입문자, 혹은 그에 준하는 실력의 분들에게 4주간 Java 프로그래밍을 알려드리고, 그 후 기초적인 수준의 안드로이드 앱을 4~5개 정도 직접 제작해보는 실습을 거칩니다.
- 자세히 보기: http://www.fastcampus.co.kr/dev_camp_adb
- 문의: 이은혜 매니저(02-517-0643)
커넥티드 앱을 개발하는 가장 완벽한 플랫폼 RAD Studio XE8의 새로운 기능들을 정리한 발표자료입니다.
iOS 유니버셜 앱, 비콘, Box2D 등 소프트웨어 개발자라면 요즘 가장 많은 관심을 가지고 있을 IT기술들이 RAD Studio에 어떻게 적용되었는지 확인해보세요.
Presentation from #andevcon by Anna Schaller
Peter van der Linden, Android Technology Evangelists from the Developer Platforms and Services team at Motorola Mobility. More info at http://developer.motorola.com
Flutter로 글로벌앱 출시를 위한 꿀팁 - Droidknights2020Bansook Nam
Droidknighs2020에서 유튜브로 발표한 슬라이드입니다.
https://www.youtube.com/watch?v=gTYou3Ru1QM
[Speaker소개]
안드로이드 개발 7년차, Flutter 개발 2년차 개발자입니다. 현재 스타트업 Lawfully에서 182개국 약 7만명의 유저가 사용중인 글로벌앱을 개발/관리 하고 있습니다. 프론트엔드 개발에 관심이 많아 그 외에 React 프로젝트도 참여하였고, 각 플랫폼과 언어의 장단점을 잘 녹여서 개발에 적용중입니다.
이번 발표는 Flutter에 관심이 있는 개발자, 혹은 Flutter앱을 처음 런칭하시는 분들이 참고하시면 좋은 내용으로 준비했습니다.
[이런 분이 들으시면 좋습니다]
Flutter 관심 있으신분. Flutter로 앱을 출시하고 싶으신분. Native Platform 앱과 Flutter 앱을 비교해보고 싶으신분.
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법복연 이
『이펙티브 디버깅』 디버깅 지옥에서 탈출하는 66가지 전략과 기법
디오미디스 스피넬리스 지음 | 남기혁 옮김 | 한빛미디어 | 24,000원
★ 소프트웨어의 완성은 디버깅!
이 책은 경험이 풍부한 개발자를 대상으로 소프트웨어를 완성하는 마지막 기술을 가르친다. 저자는 35년 경험에서 깨우친 일반 원칙, 높은 수준의 전략, 구체적인 기술에 관한 조언, 효율 높은 도구, 창의적인 기법, 효과적인 디버깅과 관련된 행동 특성을 제시한다. 저자가 제안하는 66개의 전문 기법을 통해 디버깅 역량을 확장하고, 각 문제 상황에 맞는 최상의 접근법을 선택할 수 있을 것이다.
★ 주요 내용
다양한 소프트웨어 장애를 해결하는 높은 수준의 전략과 방법
프로그래밍, 컴파일, 실행 시 적용할 구체적인 기법
디버거를 최대한 활용하는 방법
믿고 투자해도 좋은 범용 기술과 도구
막다른 길과 복잡한 미궁에서 탈출하는 첨단 아이디어와 기법
디버깅하기 쉬운 프로그램을 만들기 위한 조언
멀티스레딩, 비동기, 임베디드 코드 디버깅에 특화된 접근법
향상된 소프트웨어 설계, 구축, 관리를 통한 버그 회피법
4. 6.0 마시멜로의 새로운 기능이 필요하다면?
사용자가 잠자는 동안에도 작업이 진행되어야 한다면?
항상 정확한 시간에 작업이 이루어져야 한다면?
체크리스트 #1
targetSdkVersion을 올려야 합니다!
5. 체크리스트 #2
targetSdkVersion을 올리지 않더라도,
앱을 수정해 재배포 해야합니다.
마시멜로에서 앱을 실행했더니 죽는다면?
강제로 권한을 제거하면 심각한 문제가 발생한다면?
백그라운드에서 WiFi / Bluetooth Scan 작업을 수행해야 한다면?
13. Runtime Permissions
앱 설치 시 권한 확인 없이 바로 앱 설치/업데이트 가능
앱 실행 중 권한 여부를 확인 한 후 권한 요청 필요
사용자는 설정화면을 통해 언제든지 앱의 권한을 변경 가능
14. 새로운 권한 모델은 ‘Dangerous’ 수준의 권한에만 적용 됨
CALENDAR, CAMERA, CONTACTS, MICROPHONE, LOCATION, PHONE, SENSORS,
SMS, STORAGE
Runtime Permissions
Normal 수준 권한은 메니페스트에 선언하면 바로 사용 가능
INTERNET, USE_FINGERPRINT, ACCESS_NETWORK_STATE,
RECEIVE_BOOT_COMPLETED, etc…
15. “설정 > 애플리케이션 > 앱 선택 > 권한”
내 앱이 사용하고 있는 Dangerous 수준 권한 확인하기
체크 리스트
표시되는 권한이 없다면?
축하합니다 : ) Dangerous 수준 권한이
메니페스트에 선언되지 않았고, 앱은 런
타임 권한 모델에 영향을 받지 않습니다.
16. 권한 확인
권한 요청 이유 설명
권한 요청
콜백 확인 후 처리
App System
Runtime Permissions Flow
권한 요청을 위한 대화창은 시
스템에서 생성 및 관리 됨
Activtiy LifecCycle에 주의
(onPause / onResume 호출)
17. 권한 확인
권한 요청 이유 설명
권한 요청
콜백 확인 후 처리
App
Runtime Permissions Flow
ContextCompat#checkSelfPermissions
ActivityCompat#shouldShowRequestPermissionRationale
ActivtiyCompat#requestPermissions
OnRequestPermissionsResultCallback
#onRequestPermissionsResult
Runtime Permission Sample App 코드를 확인하세요.
19. 시스템 권한으로 변경된 권한들
다른 앱 위에서 팝업을 띄우기 위해 사용되던
SYSTEM_ALERT_WINDOW 권한과 시스템 설정 값을 강제로 변경하기
위해 사용되던 WRITE_SETTINGS 권한은 더이상 일반적인 방법으로 획
득할 수 없습니다.
고급 권한 설정을 통해
사용자가 직접 변경 가능합니다.
20. SYSTEM_ALERT_WINDOW 올바르게 처리하기
권한 확인
권한 요청 엑티비티 실행
App
Settings.System.canDrawOverlays()
Start Activtiy
ACTION_MANAGE_OVERLAY_PERMISSION
action and app package url in data field
(eg> package:com.my.app)
onPause
onStop
onRestart
onStart
onResume
21. WRITE_SETTINGS 올바르게 처리하기
권한 확인
권한 요청 엑티비티 실행
App
Settings.System.canWrite()
Start Activtiy with
ACTION_MANAGE_WRITE_SETTINGS action
and app package url in data field
(eg> package:com.my.app)
onPause
onStop
onRestart
onStart
onResume
22. android {
useLibrary ‘org.apache.http.legacy'
…
}
안드로이드 2.3 이 후 버전 부터는 HttpUrlConnection 사용이 권장 됩니다.
HttpUrlConnection 기반의 오픈 소스 라이브러리 Volley 혹은 OkHttp를 검토해보세요.
Apache Http Client 삭제
ApacheHttpClient 가 꼭 필요하다면 build.gradle 파일에
컴파일 의존성을 추가해주세요.
23. Access to Hardware Identifier
WifiManager.getScanResults()
BluetoothDevice.ACTION_FOUND
BluetoothLeScanner.startScan()
…
ACCESS_FINE_LOCATION 혹은 ACCESS_COARSE_LOCATION
권한이 없으면 주변 Wifi / Bluetooth 디바이스를 발견할 수 없습니다.
다음과 같은 메서드가 정상적으로 동작하지 않습니다.
24. 23으로 타겟을 올린 후, 멀쩡한 so 파일을 불러올 수 없다면?
Shared library with text relocations
target 23 미만에서는 다음과 같은 경고가 발생하지만,
사용 가능했던 라이브러리는
linker XXX has text relocations. This is wasting memory and is a security risk. Please fix.
target 23 이후는 ‘dlopen(3)’ 오류와 함께 사용 불가합니다.
Shared Library 컴파일 할 때
-fPIC 플래그를 컴파일 옵션에 추가해서 다시 빌드하세요.
25. 그 외 변경/삭제된 API
BrowserBookmark
android.provider.Browser.getAllBookmarks()
android.provider.Browser.saveBookmark()
Notification
Notification#setLatestEventInfo()
AudioManager
AudioManager#setStreamSolo()
AudioManager#setStreamMute()
34. Doze 대응을 고민하기 전에
여러분의 앱은 사용자가 잠자고 있는 동안에도
처리해야할 중요한 작업이 있나요?
예> 알람시계, 실시간 메시징
그렇지않다면, 너무 걱정하지마세요.
사용자가 화면을 켜는 순간 Doze 모드가 바로 종료됩니다.
35. API Level 23
Doze 와 AlarmManager
Doze 모드에서도 작업이 수행 되어야한다면...
AlarmManager#setAndAllowWhileIdle
AlarmManager#setExactAndAllowWhileIdle 메서드를 사용합니다.
두 메서드 모두 배터리 사용량에 나쁜 영향을 미칠 수 있습니다. 따라서...
Doze 모드가 아니면,
>알람은 개별 앱 당, 최대 1분에 한 번 동작합니다.
Doze 모드 상에서는,
>알람은 개별 앱 당, 최대 15분에 한 번 동작합니다.
36. API Level 21
Doze 와 AlarmManager
Doze 모드에서 동작하는 알람 시계를 구현하려면...
AlarmManager#setAlarmClock 메서드를 사용합니다.
AlaramClock이 설정되면...
StatusBar에 아이콘이 표시되고,
설정된 알람 시간 조금 전에 Doze 모드에서 벗어납니다
37. 상황에 맞춰 올바른 API를 사용하세요!
보다 자세한 설명이 필요하면
왼쪽 그림을 클릭! 하세요.
38. Doze 와 GCM
Doze 모드 일 때, Normal Priority GCM 수신이 지연됩니다.
Doze 모드 중에서도 리얼타임 메세징이 꼭 필요하다면...
High Priority GCM 을 사용합니다.
{
"to" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...",
"priority" : "high",
"notification" : {
"body" : "This week’s edition is now available.",
"title" : "NewsMagazine.com",
"icon" : "new",
},
"data" : {
"volume" : "3.21.15",
"contents" : "http://www.news-magazine.com/world-week/21659772"
}
}
39. Doze 모드 올바르게 대응하기
현재 디바이스가 Doze 모드인지 확인할 수 있습니다.
현재 앱이 Whitelist에 포함되어 있는지 확인할 수 있습니다.
디바이스 IDLE 상태 변화를 확인할 수 있습니다.
PowerManager#isDeviceIdleMode
PowerManager#isIgnoringBatteryOptimizations
ACTION_DEVICE_IDLE_MODE_CHANGED 브로드캐스트 인텐트
40. 배터리 최적화 무시
Doze 중에도 네트워크 연결이 꼭 필요한 경우, 사용자에게 특정 앱의 배터리 최적화를 무시
할 것을 요청할 수 있습니다. 하지만 주의하세요. 불필요한 요청은 GooglePlay 정책에 위배
될 수 있습니다.
1. 메니페스트 상에
REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 권한 선언
2. 다음 형태의 Intent 생성 후 엑티비티 실행
• ACTION: ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
• DATA URI: package:[app package name]
3. “배터리 최적화를 무시할까요?” 대화창 표시
41. 런타임 권한 체크 리스트
권한 설정에서 강제로 권한을 제거한 후에도
앱이 기대한 방식으로 동작하나요?
42. 런타임 권한
안드로이드 6.0 에서는 23 타겟으로 빌드되지 않은 앱도,
설정 메뉴를 통해 사용자가 앱의 권한을 강제로 제거할 수 있습니다.
사용자에게 위험성을 경고하는
대화창이 표시됩니다.
43. targetSdk 가 23 미만의 앱에서 API 호출에 필요한 권한이 없는 경우, 안드로
이드 플랫폼은 SecurityException 대신 민감한 정보에 접근하지 못하게 API
결과값을 조정합니다.
제거된 권한 메서드 이름 결과
android.permission-
group.PHONE getLine1Number() null
android.permission-
group.STORAGE Querying MediaStore Empty Cursor
android.permission-
group.CAMERA openCamera() CameraAccessException
android.permission-
group.CONTACTS Querying Contacts Empty Cursor
런타임 권한
44. 타겟 버전과 관계없이 권한을 갖고 있는지 확인할 수
있는 API가 추가되었습니다.
PermissionChecker#checkSelfPermission
런타임 권한
46. WiFi / Bluetooth Scan
체크리스트
백그라운드 상에서 WiFi / Bluetooth Scan
작업을 수행하시나요?
47. 주변 디바이스 정보를 활용하면 사용자 위치를 알 수 있습니다.
targetSdkVersion이 23 미만인 경우 Location 권한이 없으면,
WiFi / Bluetooth Scan 작업은 앱이 포그라운드 상에서 동작할 때만
정상적으로 동작하며, 백그라운드 상에서는 동작하지 않습니다.
(빈 리스트를 반환합니다.)
Location 권한이 없는 경우...
48. 안드로이드 개발자 사이트
안드로이드 6.0 API 소개 비디오 플레이리스트
구글 코리아 개발자 블로그
Google Developer Group Korea
GDG Korea Android
OneStore 개발자 센터 블로그
참고자료 / 참고사이트