C# 및 Uno 플랫폼이 있는 플랫폼 간 애플리케이션 - 섹션 1

5894 단어 csharpmobiledotnet
만약 응용 프로그램을 개발하고 있다면, 가능한 한 많은 사용자를 접촉하고 싶다면, 가장 간단하고, 가장 뚜렷한 목표는 웹 응용 프로그램이다.사용자가 어느 플랫폼에 있든지 간에 그것은 쉽게 접근할 수 있다.그러나 모든 응용 프로그램\장면을 브라우저를 통해 전달할 수 있는 것은 아니다. 이것이 바로 우리가 데스크톱\노트북, 웨어러블 장치와 모바일 응용 프로그램을 가지고 있는 이유이다.그래서 지금 너는 반드시 이 플랫폼을 지원하는 소프트웨어를 작성해야 한다.코드를 한 번만 작성하면 모든 플랫폼에서 실행할 수 있다면 생활이 더욱 수월해질까?

그렇다면 데스크탑/노트북 및 모바일 장치의 범주는 두 가지입니까?


데스크탑\노트북은 Windows, Mac 또는 Linux의 두 가지 플랫폼(또는 폼 팩터)만 사용할 수 있습니다.핸드폰은 안드로이드 아니면 iOS.태블릿PC와 웨어러블 기기의 거대한 시장도 고려하지 않았다.그것도 이 장치에서 각종 버전을 실행하는 운영체제의 각종 버전을 고려하지 않았다.
via GIPHY
본고에서 우리는 Uno Platform을 연구하여 Windows, Mac, Linux, 안드로이드에 적용되는 응용 프로그램을 개발할 것이다.
주의: 본고의 두 번째 부분에서 우리는 크로스플랫폼 개발, 도전과 Uno플랫폼의 대체 방안을 더욱 토론할 것이다.

Uno 플랫폼이란?


Uno 플랫폼은 단일 코드 라이브러리를 갖춘 앱을 구축하는 데 사용되는 open source 사용자 인터페이스 플랫폼으로, 다양한 플랫폼을 대상으로 할 수 있다.모든 플랫폼에 대해 C# 및 XAML로 코드를 작성할 수 있습니다.내부에 existing capabilities provided by each platform을 기반으로 하여 응용 프로그램 개발에 전념할 수 있습니다.응용 프로그램의 실행 위치에 따라 응용 프로그램의 행동을 추가\수정할 수 있습니다.
출처:
Uno Platform은 Uno가 어떻게 플랫폼을 뛰어넘어 구축, 운행, 렌더링을 하는지를 잘 정리했다.

GitHub 설명서 Uno가 포함된 간단한 응용 프로그램


우리는 간략한 버전의portfolio Tracker 웹 응용 프로그램을 만드는 데 착안할 것이다. 이 응용 프로그램은 내가 개발한 것이다.내가 가한 제한은 내가 나의 서비스나 데이터베이스를 수정해서는 안 된다는 것이다.기존 API 세트와 함께 사용해야 합니다.
내 요구는 귀결해 보면 이거야-
  • 은 현재 사용 가능한 데이터를 사용하여 Windows, Linux, Mac 및 Android에서 실행되는 어플리케이션을 작성합니다.
  • 은 내가 이전에 만든 웹 조립 프로젝트의 코드를 가능한 한 많이 다시 사용합니다.
  • 참고: Uno는 내 대상 플랫폼보다 더 많은 플랫폼을 지원합니다.iOS, Tizen 및 웹 패키징도 지원합니다.나는 iOS와 Tizen을 시도할 수 없기 때문에 그것들을 배제했다. 왜냐하면 나는 이미 Blazor를 사용하여 웹 조립을 시도했기 때문에 나도 그것들을 포함하지 않았다.
    저는 Windows에서는 Visual Studio 2019를, Mac에서는 Visual Studio 2019를 사용했습니다.두 플랫폼의 Uno 플랫폼 시작 설명서는 모두 입니다.

    여기 있다 프로젝트 구조


    다음은 이 응용 프로그램의 Visual Studio 프로젝트 구조입니다.
    Uno 플랫폼 Visual Studio 프로젝트 구조(Windows)
  • Mac 대상 항목이 Windows에서 지원되지 않으므로 제거되었습니다.
  • 공유 프로젝트는 파일 목록일 뿐입니다.그것들은 각 목표 플랫폼에서 공유되고 각 플랫폼을 위해 구축된다.
  • 모든 목표 프로젝트는 자신에게 특정한 프로젝트를 가질 수 있다. 각 플랫폼의 글씨체와 이미지 자산이 바로 몇 가지 예이다.
  • 추가할 참조\n수령 패키지는 모든 대상 플랫폼에 추가되어야 합니다.
  • 홈페이지.공유 프로젝트 중xaml은 을 사용하여 내비게이션을 설정하는 곳입니다.기본 뷰도 Main에 설정되어 있습니다.xaml.cs, 이 예에서는 Dashboard가 기본값으로 설정됩니다.
  • 탐색 보기 비밀 번호


    실제 코드의 측면에서 보면 C#\XAML UWP 응용 프로그램을 작성하고 있습니다.UI를 개발 중이며 UI 컨트롤이 필요합니다.두 번째 부분에서는 이 점으로 돌아가서 더 많은 토론을 진행할 것이지만, 여기서 Windows 커뮤니티 패키지를 언급할 것입니다. 중 하나는 그것을 어떻게 사용하는지 소개하고 다른 플랫폼에 이식된다.프로젝트에 DataGrid, NavigationView, ProgressBar를 넣었는데 효과가 좋았습니다.
    Android emulator에서 물리적 장치가 아닌 애플리케이션을 시도했기 때문에 제스처 지원을 시도할 수 없습니다.
    진정한 생산 응용 프로그램에서 우리는 플랫폼에 특정한 행위를 필요로 할 수도 있다.나는 이 프로그램을 위해 이런 장면을 설계하지 않았지만, 그래도 한번 해 보고 싶었다. 그래서 나는 이렇게 했다. 안드로이드에서, 나는 네비게이션 메뉴가 왼쪽 상단의 햄버거 메뉴 (세 개의 겹쳐진 꺾임표) 였으면 좋겠다.데스크톱/노트북에 대한 화면 공간이 충분하기 때문에 햄버거 메뉴를 원하지 않습니다. 메뉴 항목으로 선택한 메뉴에 밑줄이 그어져 있습니다.
    
    #if __ANDROID__
        RootNavigationView.PaneDisplayMode = NavigationViewPaneDisplayMode.Auto;
    #else
        RootNavigationView.PaneDisplayMode = NavigationViewPaneDisplayMode.Top;
    #endif
    
    
    Uno는 docsC#에서 플랫폼별 코드를 지원한다.
    리눅스와 안드로이드에서 나온 몇 개의 앱 캡처가 있습니다. 리눅스는 윈도 10에서 Kubuntu 18.04를 실행하는 가상 컴퓨터입니다.
    Linux의 XAML C#UI 애플리케이션
    안드로이드 화면 캡처는 아날로그에서 나온 것입니다. 왜냐하면 제가 이 로컬 개발 프로그램을 휴대전화에 설치하지 않았기 때문입니다.네, 회색을 선택했기 때문에 이 앱은 보기에 좋지 않아요.
    Android Emulator에서 동일한 어플리케이션을 실행하는

    지금까지 우노는 어땠어요?


    너는 단일한 코드 라이브러리로 각양각색의 플랫폼을 겨냥할 수 있다. 이것은 매우 좋다.웹 조립도 포함되어 있기 때문에 브라우저 공간도 덮어씁니다.응용 프로그램에서 공유 프로젝트(모델, 인터페이스, 서비스, 조수 등) 아래 폴더의 코드는 내가 이전 프로젝트에서 사용한 코드이다.이것은 내가 본 Uno로 이 프로그램을 작성하는 가장 큰 장점이다.나는 나의 서비스와 데이터베이스를 가지고 있으며, 나는 그것의 모든 코드를 얻고 처리한다.UI 구축에만 중점을 둡니다.플랫폼에 특정된 일을 필요로 하지 않으면 Uno는 우리에게서 추상적으로 나온다.
    XAML 열을 다시 불러오는 것은 매우 유용하다. 특히 우리가 익숙해지면, 예를 들면 React 개발이다.언노가 확실히 핵심 멤버가 참여하는 긍정적인 불협화음 채널이 있다는 것은 고무적이다.
    타사 라이브러리(제가 여기에 UI 컨트롤을 포함하지 않고 제2부분에서 토론한 것)도 MVVM Light 등 프레젠테이션 프레임워크와 Material UI 등 주제화 옵션을 포함하는 좋은 지원이 있습니다.
    으로 연결합니다.
    표지 사진GitHub repo for this app

    좋은 웹페이지 즐겨찾기