프로그래밍

스마트폰 앱개발 가장 쉬운 방법

panpro 2018. 10. 12. 20:06

스마트폰 앱개발 공부하는데 고민되는 건 아마 크게 2가지 정도일 겁니다. 


첫번째는 스마트폰 종류가 다양해서 어떤 스마트폰용 앱을 만들까 하는 걸 꺼에요. 

안드로이드용 앱으로 만들까, 아이폰용 앱으로 만들까. 

그러다 보면 어떻게 하면 한방에 안드로이드 앱과 아이폰 앱을 만들 수 있을까 궁리하게 됩니다.



두번째는 언어의 고민이 있을 거에요.

안드로이드 앱은 자바로 안드로이드 스튜디오에서 자바로 만들어야 한다고 하고, 

아이폰은 처음 들어보는 xcode라는 IDE에서 Objective-C...라는 더 생소한 언어로 만들어야 하고.


이렇게 되면 자바나 objective-C나 둘중 하나를 선택해야 하는 상황이 오는거죠.

하나도 제대로 배우기 힘든데 두개 씩이나..




난 스마트폰 앱 게임도 만들고 싶은데, 

그럼 유니티라는 것도 배워야 한다 하고...



할게 너무 많지요. 



그런데 안드로이드 앱, 아이폰 앱 같은 스마트폰 앱개발을 

안드로이드 아이폰 가리지 않고 한방에 개발하는 방법이 있습니다.


하나의 프로젝트에서 아이폰 앱도 만고 안드로이드 앱도 만드는 거에요. 


이렇게 코드 하나로 여러 플랫폼서 실행되도록 하는 개발 기법을 크로스 플랫폼(cross platform) 이라 부릅니다. 


예전에는 크로스 플랫폼이라 하면 거의

윈도우즈 - 맥 - 리눅스

였어요.


그러니까 코드 하나 만들어서 그게 윈도우즈에서도 돌아가고 맥에서도 돌아가고 리눅스에서도 돌아가게 만드는 거죠.


요새는 같은 코드로 아이폰 - 안드로이드 에서 돌아가게 만드는 것도 포함되었어요.


아이폰이건 안드로이드건 구분하지 않고 그냥 개발만 해 놓으면 두 군데에서 모두 돌아가는 건 정말 굉장한 일이에요.


크로스 플랫폼은 정말 축복입니다. 



이렇게 스마트폰 앱개발을 cross platform 기술을 이용해 개발할 수 있도록 해주는 게 xamarin 입니다. 


원래 독립된 회사에서 개발했던 프로젝트인데 마이크로소프트가 인수했고, 이후 무료로! 풀었어요.


visual studio 2017 community 버전을 다운로드 받으면 그냥 무료로 사용할 수 있습니다. 


https://docs.microsoft.com/ko-kr/xamarin


위 링크에 xamarin에 대한 자세한 설명이 있어요.



xamarin은 C#을 사용해요. 


아이폰을 위해 objective-C, 안드로이드 앱을 위해 java를 사용하는 게 아니라 아이폰 앱이건 안드로이드 앱이건 그냥 다 C#을 사용해서 개발해요.


게다가 xamarin은 안드로이드 앱, 아이폰 앱 뿐만 아니라 윈도우 10용 앱(윈도우용 스토어에서 파는 거. UWP라고 부름) 도 만들 수 있어요. 


그러니까 동시에 3개 플랫폼에서 돌아가는 앱을 만들 수 있어요. 


아이폰 앱, 안드로이드 앱, 윈도우 10용 앱.


스마트폰 앱뿐만 아니라 윈도우에서 돌아가는 앱도 만들 수 있는 거죠. 대박. ㅋ. 



게다가 이게 무료라니. 




C#은 objective-C에 비해 배우기가 훨씬 쉬.... 음.. 사람에 라 다르지만 쉬울 수 있어요. 

대부분 쉽다고 느끼는 거 같아요.


C#은 자바랑 많이 비슷해요. 


배우기도 그리 어렵지 않아요. 



요즘처럼 프로그래밍 언어들이 많은 시대에 C#을 공부하는 건 꽤 경쟁력이 있습니다. 


왜냐. 


아까 살짝 언급했던 게임 만드는 유니티도 C#을 사용하거든요.


그러니까 C#을 배우면 크로스 플랫폼으로 스마트폰 앱을 개발할 수 있는 xamarin을 배우는 데 사용할 수 있고,

스마트폰 게임 앱을 만드는 유니티에서도 사용할 수 있고, 

윈도우용 프로그램을 만드는 데도 사용할 수 있어요.


꿩먹고 알먹고 라고 할까. ^^;



저는 C# 언어 좋은 언어라고 생각합니다. 

장점도 많고 라이브러리도 많아 개발하기 편하게 해줘요. 




결론


xamarin을 이용하면 크로스 플랫폼으로 한번의 개발로 아이폰 앱, 안드로이드 앱 등 스마트폰 앱개발을 할 수 있고, 윈도우용 프로그램도 개발할 수 있어 가장 쉽고 빠르게 다양한 플랫폼에서 같은 기능을 하는 프로그래밍을 할 수 있다.