노력과 삽질 퇴적물

자마린: 기초 및 입문 (1) 본문

프로그래밍note/언어. C# 계열

자마린: 기초 및 입문 (1)

MTG 2023. 3. 10. 00:48
목차
 필요한 파일
 프로젝트 생성
 환경설정
 빌드 테스트
기초 및 입문 (2)
 레이아웃 및 UI
 액티비티
 코드를 통한 UI제어
기초 및 입문 (3)
???


* JAVA & 이클립스ADT에서 하던걸 기준으로 놓고 자마린(Xamarin) 공식 튜토리얼을 참조해서 작성하면서 가급적 병행표기를 해뒀습니다.
* 이번 포스팅 목표는 프로젝트 생성부터 빌드까지로 레이아웃등 솔루션내 구성에 대한 설명은 다음 포스팅에서 다루겠습니다.
* MS진영이 Xamarin.Forms기반으로 MAUI를 밀고 있다는 자료를 뒤늦게 발견해서 그 쪽으로 환승합니다. [2023-03-11]





0. 필요한 파일

 

파일명
 예시경로
android-sdk-windows
 D:\dev_lib\android-sdk-windows
 jdk-11.0.16_windows-x64_bin  C:\Java\jdk_11.0.16
* 아직 1.8을 쓰는 경우도 있던거 같지만 개인 프로젝트는 11로.
* VisualStudioSetup.exe를 통해 설치할 경우, 자동 설치되는터라 기존에 없던분은 생략 가능.
 VisualStudioSetup.exe [#다운로드]  (VS 메인 프로그램등은 경로가 자동설정)


* VisualStudioSetup.exe로 설치하고, C:\Program Files (x86)\Android\android-sdk에서 복사했습니다. 안드로이드 스튜디오같은거 쓸때 중복으로 설치되고 해서 용량이...
* JDK 자체를 처음 설치할 경우, [#개발용 환경변수 설정(Path 설정)] 참조
* 자마린은 VS 설치시 병행이 가능합니다.






1. 프로젝트 생성
 
이대로 그냥 하면 좋겠지만...
이리 됩니다.
 
 평소 쓰던 토이 프로젝트 구조 방식을 적용하면 아래와 같이 되지만 어디까지나 제 방식인데 나중에 이 부분을 생략하고 진행하면 혼선이 올 수도 있어서 메모차원에서 남깁니다.
(sampleProj.sln와 같은 위치에 있던 플랫폼별 폴더들 이름을 바꾼후 src 하위로 이동)
 
# sampleProj.sln 파일내
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.4.33213.308
MinimumVisualStudioVersion = 10.0.40219.1
(중략) = "Android", "Android\Android.csproj", "(중략)"
EndProject
(중략) = "iOS", "iOS\iOS.csproj", "(중략)"
EndProject
(중략) = "Xamarin", "Xamarin\Xamarin.csproj", "(중략)"
EndProject





2. 환경 설정
 
1) VS
[도구>옵션]에서 경로는 자체 설치된걸로 잡혀있어서 이대로 그냥 쓰셔도 되지만,
전 예전부터 SDK써오던 경로가 따로 있고 안드로이드 스튜디오도 그 경로를 쓰고 있다보니 별도의 경로로 수정해서 사용하겠습니다.


2) SDK 관리자
[도구>Android>Android SDK 관리자]
-> 플랫폼 탭에서는 필요한 API버전내에서 'Android SDK Platform (버전_번호)'랑 Google APIs xxx xxx System Image를 선택해줍니다. 실제 개발 및 빌드등에 필요한 필수사항입니다.
-> 도구 탭에서는 최소한의 선택사항인데, 상단에 있는 항목들이 빌드에 축가로 필요한 부분이고 추가 부분은 디버깅과 에뮬레이터 관령입니다.


3) API 레벨 및 SDK버전
 Windows Installation(작성: 2021-10-21)에 나온 설명으로는 자마린 안드로이는 JDK11이고, 이전 버전중 9는 미지원이고 8은 API레벨에 제약이 있긴해도 어느 범위까지는 가능한거 같습니다. (원문, JDK 8 also supports API levels earlier than 24)
 'Google Play의 대상 API 수준 요구사항 충족하기'에서는 "2023년 1월부터 앱 업데이트는 Android 12 이상을 타겟팅하고 Android 12의 동작 변경사항에 맞게 조정되어야 합니다. 단, Android 11 이상을 타겟팅해야 하는 Wear OS 앱은 예외입니다."로 '안드로이드12=API 31'니깐, 공개용 앱 새로 만드는건 JDK11가 필수로 보면 되겠지만, 테스트 디바이스가 갤럭시S9인 관계로 저는 최소 사양을 Android 10로 두겠습니다.
 SDK 버전 맞추기.
-> 안드로이드 스튜디오나 이클립스+ADT환경에서는 AndroidManifest.xml로 SDK버전을 지정했는데, 자마린에서는 Properties에서 드롭다운으로 선택하면 됩니다. 여기서 수정하면 xml쪽은 자동으로 반영되고 역방향도 됩니다.
-> 최소 Android 버전(minSdkVersion): 디바이스의 최소사양, 지정된 버전 밑으로는 설치 불가.
-> 대상 Android 버전(targetSdkVersion): 구현중 필요한 클래스나 테마상 최소 버전보다 높을때가 있던데, 지금은 최소 버전과 같게 잡아둡니다.
-> Android 버전을 사용하여 컴파일: 자마린 환경에서 처음보는 옵션이다보니 지금 시점에서는 모르겠습니다. 이번에는 기본적인 빌드 테스트까지가 목표이니 최소 버전과 동일하게 해둡니다.





) 에뮬레이터
-> '안드로이드 12 업데이트가 궁금합니다.'를 보면 갤럭시S 모델중 가장 낮은 갤럭시S10로 해상 h3040×w1440, 화면비 19:9, 디스플레이 사이즈는 6.1"지만, 테스트 디바이스 사양상 h2960×w1440, 5.8"
-> 프로세서는 하드웨어 가속등 성능에 이점상, x86 아니면 x86_64를 쓰면 됩니다.(속도: x86 > x86_64)
 
C:\WINDOWS\system32>systeminfo
... ... ...
호스트 이름: ANALOG-GREEN
OS 이름: Microsoft Windows 10 Home
OS 버전: 10.0.19045 N/A 빌드 19045 <--빌드 1803이상
OS 제조업체: Microsoft Corporation
OS 구성: 독립 실행형 워크스테이션
OS 빌드 종류: Multiprocessor Free
등록된 소유자: MTG
... ... ...
Hyper-V 요구 사항: 하이퍼바이저가 검색되었습니다. Hyper-V에 필요한 기능이 표시되지 않습니다.
Home에디션은 미지원입니다.
이 상태로는 에뮬레이터 속도 최적화가 더는 안 되니 생략.
 
 
 
 

3. 빌드 테스트
 
1) 빌드 실행