ANDROID
구글, 안드로이드 그리고 플러터
독고냥이
2023. 7. 15. 08:18
- 안드로이드란?
- 안드로이드는 모바일 운영체제로서 광범위한 사용자들에게 혁신적인 기능과 편의성을 제공한다.
- 현재까지 전 세계에서 가장 많이 사용되는 모바일 운영체제 중 하나이다.
- 안드로이드의 역사에 대해 알아보자.
- 초기 개발 단계
- 안드로이드는 2003년에 안디 로비치(Andy Rubin), 리처드 마이너(Rich Miner), 닉 서스(Nick Sears), 크리스 와이트(Chris White)에 의해 설립된 안드로이드 사에서 개발되었다.
- 초기에는 휴대전화를 위한 개방형 플랫폼으로서의 안드로이드가 아닌, 태블릿 PC를 위한 운영체제로 개발되었으나, 이후 모바일 플랫폼으로 전환되었다.
- 안드로이드의 인수와 개발:
- 2005년 구글이 안드로이드 사를 인수하였고, 안드로이드 플랫폼 개발을 이어갔다.
- 2007년에는 안드로이드 오픈 소스 프로젝트(Open Source Project, AOSP)를 시작하여 개발자들에게 개방된 플랫폼을 제공하였다.
- 첫 번째 안드로이드 버전
- 2008년 9월 23일, 첫 번째 상용 안드로이드 버전인 Android 1.0이 출시되었다.
- 이 버전은 HTC Dream(또는 T-Mobile G1)과 함께 공개되었으며, 터치 스크린과 슬라이드 아웃 키보드 등의 기능을 제공했다.
- 독고냥이에게 안드로이드란?
2009년 삼성전자 협력사에 입사하여 삼성전자 갤럭시 s1과 갤럭시 탭을 처음 만났고, 안드로이드 개발을 시작하였다.
처음 개발자의 길을 걷고자 하였을 때는 자바를 기반으로 웹 개발자의 길을 걷고자 하였는데 안드로이드를 만났고, 안드로이드에 빠졌다.
"이것저것 다양한 경험도 중요하지만 깊은 내공이 더 중요하다. 한 우물을 깊게 파라"라고 말씀하셨던 책임 연구원 선배님의 말씀을 마음 깊이 새겼다. 그리고 안드로이드의 길을 지금도 걷고 있다.
2015년 이클립스에서 안드로이드 스튜디오로 IDE를 환승하였다.
2019년 자바에서 코틀린으로 환승하였다. 그리고 코틀린의 매력에 푸욱 빠지게 된다.
2023년 다트 언어를 공부중이다. 그리고 다트언어에 푹 빠질 예정이다.
- 안드로이드의 발전과 업그레이드
- 안드로이드는 지속적인 발전과 업그레이드를 거쳐 다양한 버전이 출시되었다.
- 각 버전은 새로운 기능, 개선된 성능, 보안 강화, 사용자 경험 개선 등의 업데이트를 포함하고 있다.
- 몇 가지 주요 안드로이드 버전은 Android 1.5 (컵케이크), Android 2.2 (프로요), Android 4.0 (아이스크림 샌드위치), Android 5.0 (롤리팝), Android 6.0 (마시멜로), Android 7.0 (누가), Android 8.0 (오레오), Android 9.0 (파이), Android 10, Android 11, Android 12 등이 있다.
- 안드로이드의 성장과 생태계
- 안드로이드는 시장에서 큰 성공을 거두었고, 다양한 제조사들이 안드로이드 기반의 스마트폰 및 태블릿을 출시하였다.
- 구글 플레이 스토어(Google Play Store)를 통해 수백만 개의 애플리케이션을 다운로드하고 설치할 수 있으며, 안드로이드는 다양한 앱과 서비스 생태계를 형성하였다.
- 안드로이드는 또한 다양한 기기에 적용되어 자동차, 스마트워치, 스마트 TV 등 다양한 스마트 기기들을 지원하고 있다.
- 최신 동향
- 현재 안드로이드는 지속적인 발전과 혁신을 이어가며, 새로운 버전과 기능이 지속적으로 출시되고 있다.
- 최신 버전인 Android 12는 햅(H)으로 알려진 내부 코드명을 가지며, 새로운 디자인 요소, 개인 정보 보호 강화, 개선된 사용자 경험 등의 기능을 포함하고 있다.
- 안드로이드에서의 Java 란?
- 초기에는 Java 언어가 안드로이드 앱 개발의 주요 언어였다.
- Java는 객체 지향 프로그래밍 언어로서 안드로이드 앱의 핵심 로직과 UI 요소를 구현하는 데 사용된다.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = findViewById(R.id.button);
TextView textView = findViewById(R.id.textView);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
textView.setText("버튼이 클릭되었습니다!");
}
});
}
}
- Kotlin
- Kotlin은 2017년부터 공식적으로 안드로이드 앱 개발을 위한 언어로 채택되었다.
- Kotlin은 Java와 상호 운용성이 뛰어나며, 기존 Java 코드와 쉽게 혼합하여 사용할 수 있다.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button = findViewById<Button>(R.id.button)
val textView = findViewById<TextView>(R.id.textView)
button.setOnClickListener {
textView.text = "버튼이 클릭되었습니다!"
}
}
}
- C++
- C++은 안드로이드 앱 개발에서 성능이 중요한 부분에 활용되기도 한다.
- C++은 안드로이드 네이티브 개발을 위해 NDK(Native Development Kit)를 통해 사용된다.
#include <jni.h>
extern "C" JNIEXPORT jstring JNICALL
Java_com_example_myapp_MainActivity_stringFromJNI(JNIEnv* env, jobject /* this */) {
std::string hello = "Hello from C++";
return env->NewStringUTF(hello.c_str());
}
- 다트(Dart) 언어와의 관계
- 구글은 다트를 안드로이드 개발에 활용할 수 있도록 다양한 도구와 프레임워크를 제공하고 있다. 그중 하나가 '플러터(Flutter)'이다.
- 플러터는 안드로이드 및 iOS 애플리케이션을 개발하기 위한 UI 프레임워크로, 다트 언어를 사용하여 네이티브 앱을 빌드할 수 있도록 지원한다.
- 구글은 플러터를 통해 안드로이드 개발자들이 높은 품질의 사용자 인터페이스와 원활한 개발 경험을 제공할 수 있도록 지원하고 있다.
- 다트 초기 개발
- 다트는 구글에서 개발된 정적 타입의 객체 지향 프로그래밍 언어로서, 초기에는 구글 크롬 브라우저를 위한 클라이언트 측 웹 개발 언어로 탄생하였다.
- 다트의 개발은 2010년에 시작되었으며, 개발 목표는 자바스크립트의 단점을 보완하고 더 나은 성능과 확장성을 제공하는 것이었다.
- 다트의 공개
- 2011년 10월 구글은 다트를 공개적으로 발표 하였다.
- 다트는 구글의 자바스크립트 대안으로써, 브라우저에서 동작하는 자바스크립트 가상 머신인 다트 가상 머신(Dart VM)을 기반으로 동작한다.
- 구글은 다트를 오픈 소스로 공개하였으며, 표준화와 협력을 통해 다트를 보다 널리 사용되는 언어로 발전시키고자 했다.
- 다트의 발전과 기능 개선
- 다트는 지속적으로 발전해 왔으며, 개발자들의 요구를 반영한 다양한 기능 개선이 이루어졌다.
- 초기에는 다트 컴파일러를 통해 자바스크립트로 변환하는 방식이었지만, 점차 다트를 직접 실행할 수 있는 다트 VM을 지원하고 개선하여 자바스크립트보다 더 나은 성능을 제공하게 되었다.
- 다트는 강력한 타입 시스템, 비동기 프로그래밍을 위한 async와 await 키워드, 리액티브 프로그래밍을 위한 스트림(Stream) 등 다양한 기능을 제공한다.
- 다트 언어 예제
//다트언어 예제
void main() {
String name = '철수';
int age = 20;
double height = 185.5;
bool isStudent = true;
print('이름: $name');
print('나이: $age');
print('키: $height');
print('학생 여부: $isStudent');
int result = calculateSum(5, 3);
print('덧셈 결과: $result');
}
int calculateSum(int a, int b) {
return a + b;
}
- 플러터(Flutter)와 다트
- 다트는 구글의 크로스 플랫폼 UI 프레임워크인 플러터(Flutter)의 주요 언어로 사용된다.
- 플러터는 안드로이드, iOS, 웹 및 데스크톱 애플리케이션을 개발하기 위한 프레임워크로, 다트 언어를 사용하여 네이티브 앱을 빌드할 수 있도록 지원한다.
- 플러터는 UI의 렌더링과 성능 면에서 우수한 결과를 보여주며, 다트 언어의 특징과 함께 개발자에게 효율적인 개발 경험을 제공한다.
- 지속적인 지원과 업데이트
- 구글은 안드로이드와 다트에 대한 지속적인 업데이트와 개선을 통해 개발자들이 보다 효율적이고 혁신적인 애플리케이션을 개발할 수 있도록 지원할 것으로 보인다.
- 안드로이드와 다트는 구글의 핵심 기술 중 하나로서, 구글은 개발자 커뮤니티와의 긴밀한 협력을 통해 개발자들의 요구에 부합하는 기능과 도구를 제공할 것이다.