贝博恩创新科技网

Xamarin Studio教程,从入门到精通怎么学?

Xamarin Studio 教程:从入门到实践

第一部分:前言 - 什么是 Xamarin Studio?

Xamarin Studio 是一个由微软(原Xamarin公司)开发的集成开发环境,专门用于使用 C# 和 .NET 框架构建跨平台移动应用、桌面应用和 Web 应用。

Xamarin Studio教程,从入门到精通怎么学?-图1
(图片来源网络,侵删)

核心特点:

  1. 跨平台开发:一套代码库,可以同时为 iOSAndroidmacOS(通过 Xamarin.Mac)构建原生应用。
  2. C# 和 .NET:利用强大的 C# 语言和成熟的 .NET 生态系统,拥有现代化的语言特性和丰富的类库。
  3. 原生性能:虽然代码是共享的,但最终会编译成各平台的原生代码(iOS 编译为 AIL,Android 编译为 IL,通过运行时 JIT 编译为机器码),因此性能接近原生开发。
  4. 原生 UI:使用各平台的原生 UI 控件(如 iOS 的 UIKit 和 Android 的 Android.Views),确保应用的外观和行为与原生应用无异。
  5. 原生 API 访问:可以无缝调用 iOS 和 Android 的所有原生 API,实现平台特定的功能。

第二部分:环境搭建

在开始之前,你需要准备好开发环境。

系统要求:

  • Windows: Windows 10 (64-bit)
  • macOS: macOS 10.14 (Mojave) 或更高版本

安装步骤:

Xamarin Studio教程,从入门到精通怎么学?-图2
(图片来源网络,侵删)
  1. 下载 Visual Studio for Mac

    • Xamarin Studio 已经完全集成到了 Visual Studio for Mac 中,你需要下载的是 Visual Studio for Mac。
    • 访问官方下载页面:https://visualstudio.microsoft.com/vs/mac/
    • 下载 Community 版本,对于个人开发者和小型团队来说,它完全免费
  2. 安装 Visual Studio for Mac

    • 运行下载的安装包。
    • 在安装向导中,务必勾选以下工作负载
      • .NET Multi-platform App UI development:这是开发跨平台应用的核心,包含了 Xamarin SDK 和 .NET MA SDK。
      • .NET Desktop development (可选):如果你也想开发桌面应用。
      • ASP.NET and web development (可选):如果你也想开发 Web 应用。
    • 选择安装位置,然后等待安装完成,安装过程可能需要一些时间,因为它会下载大量 SDK 和工具。
  3. 验证安装

    • 安装完成后,启动 Visual Studio for Mac。
    • 在欢迎界面,你可以看到 "Create a new project" (新建项目) 的选项。
    • 如果你能成功创建一个 Xamarin 项目,说明环境已经搭建好了。

第三部分:创建你的第一个 Xamarin.Forms 应用

我们将创建一个经典的 "Hello, World!" 应用,但使用更现代的 Xamarin.Forms 框架,Xamarin.Forms 允许你用一套 XAML/C# 代码来定义 UI,然后自动渲染成各平台的原生 UI。

Xamarin Studio教程,从入门到精通怎么学?-图3
(图片来源网络,侵删)

创建新项目

  • 启动 Visual Studio for Mac。
  • 选择 "File" -> "New Solution" (文件 -> 新建解决方案)。
  • 在模板选择窗口中,选择:
    • Multi-platform -> App
    • 在右侧选择 Xamarin.Forms,然后选择 Blank Form (空白表单)。
    • 点击 "Next"。

配置项目

  • Project Name: 给你的项目起个名字,HelloWorldApp
  • Organization Identifier: 通常使用反向域名格式,com.yourcompany
  • Location: 选择项目保存的位置。
  • 确保勾选了 .NET 6.0 (Long Term Support) 或更高版本。
  • 点击 "Next"。

选择目标平台

  • 在下一个窗口中,你可以选择要支持的平台,对于初学者,可以只勾选 iOSAndroid
  • 点击 "Create"。

Visual Studio for Mac 会为你创建一个包含多个项目的解决方案:

  • HelloWorldApp: 共享的 .NET 6.0 类库项目,包含你的 UI 逻辑和代码。
  • HelloWorldApp.Android: Android 平台特定的项目。
  • HelloWorldApp.iOS: iOS 平台特定的项目。

了解项目结构

  • MainPage.xaml: 这是你的应用主界面的 XAML 文件,XAML 是一种声明式语言,用于设计 UI。
  • MainPage.xaml.cs: 这是 C# 代码后置文件,用于处理 MainPage 的逻辑。
  • App.xaml/App.xaml.cs: 应用的入口点,负责启动和导航。

编写和运行代码

  • 打开 MainPage.xaml 文件,你会看到默认的 XAML 代码:

    <ContentPage xmlns="http://xamarin.com/schemas/2025/forms"
                 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                 x:Class="HelloWorldApp.MainPage">
        <StackLayout>
            <Label Text="Welcome to Xamarin.Forms!"
                   VerticalOptions="CenterAndExpand"
                   HorizontalOptions="CenterAndExpand" />
        </StackLayout>
    </ContentPage>
  • 修改 Label 文本:将 Text 属性的值改为 "Hello, Xamarin Studio!"。

    <Label Text="Hello, Xamarin Studio!"
           VerticalOptions="CenterAndExpand"
           HorizontalOptions="CenterAndExpand" />
  • 运行应用

    • 在 Visual Studio for Mac 顶部,选择你想要运行的目标平台(一个 Android 模拟器或一个 iOS 模拟器)。
    • 点击绿色的 "Run" 按钮(一个三角形图标)。
    • Visual Studio 会编译代码,并在你选择的模拟器中启动应用。

    恭喜! 你已经成功运行了你的第一个 Xamarin.Forms 应用,你应该能在模拟器屏幕中央看到 "Hello, Xamarin Studio!" 的文字。


第四部分:核心概念与常用控件

Xamarin.Forms 的核心思想是 MVVM (Model-View-ViewModel) 架构模式,但初学者可以先从直接操作 UI 开始。

常用布局

  • StackLayout: 将子控件水平或垂直地堆叠起来,最常用的布局。
    • Orientation="Vertical" (默认) 或 Horizontal
  • Grid: 类似于 HTML 的表格,可以将控件放置在行和列中。
  • AbsoluteLayout: 使用精确的坐标来放置子控件。
  • RelativeLayout: 根据相对于其他控件或父容器的位置来放置子控件。

常用控件

  • Label: 显示只读文本。
  • Button: 可点击的按钮。
  • Entry: 单行文本输入框。
  • Editor: 多行文本输入框。
  • Image: 显示图片。
  • ListView: 用于显示一个可滚动的项目列表。

事件处理 - 示例:点击按钮改变文本

  1. MainPage.xaml 中,添加一个 Entry 和一个 Button

    <ContentPage ...>
        <StackLayout Padding="20, 40, 20, 20">
            <Entry x:Name="nameEntry" Placeholder="请输入你的名字" />
            <Button x:Name="helloButton" Text="点击问候" Clicked="OnHelloButtonClicked" Margin="0, 20, 0, 0" />
            <Label x:Name="resultLabel" Text="" FontSize="Large" HorizontalOptions="Center" VerticalOptions="CenterAndExpand" />
        </StackLayout>
    </ContentPage>
    • x:Name="nameEntry":给控件命名,方便在 C# 代码中引用。
    • Placeholder:输入框内的提示文本。
    • Clicked="OnHelloButtonClicked":当按钮被点击时,调用 OnHelloButtonClicked 这个 C# 方法。
  2. 切换到 MainPage.xaml.cs 文件,添加事件处理方法:

    using System;
    using Xamarin.Forms;
    namespace HelloWorldApp
    {
        public partial class MainPage : ContentPage
        {
            public MainPage()
            {
                InitializeComponent();
            }
            private void OnHelloButtonClicked(object sender, EventArgs e)
            {
                string name = nameEntry.Text;
                if (!string.IsNullOrEmpty(name))
                {
                    resultLabel.Text = $"你好, {name}! 欢迎来到 Xamarin 世界!";
                }
                else
                {
                    resultLabel.Text = "请先输入你的名字。";
                }
            }
        }
    }
  3. 运行应用,在输入框中输入名字,然后点击按钮,你会看到标签上的文字发生了变化。


第五部分:高级主题与资源

当你熟悉了基础后,可以探索更高级的主题:

  1. MVVM 架构:学习如何使用 INotifyPropertyChanged 接口、Command 类以及 MVVM LightMvvmCross 等第三方库来分离 UI 和业务逻辑,使代码更易于测试和维护。
  2. 依赖服务:当你需要调用平台特定的 API(iOS 的 HealthKit 或 Android 的指纹识别)时,可以使用依赖服务,你定义一个接口,然后在每个平台项目中实现该接口。
  3. 页面导航:学习如何在不同的页面之间进行导航,Navigation.PushAsync(new SecondPage())
  4. 数据绑定:这是 MVVM 的核心,学习如何将 UI 控件的属性(如 Label.Text)与 ViewModel 的属性(如 UserName)进行绑定,实现数据的自动同步。
  5. 自定义渲染器:如果你需要完全控制某个特定控件的外观或行为,可以创建自定义渲染器,这需要你深入到原生代码(iOS 的 Swift/Objective-C 或 Android 的 Java/Kotlin)。

推荐资源:

  • 官方文档Microsoft Learn - Xamarin - 最权威、最全面的学习资料。
  • Microsoft Build 演讲:在 YouTube 上搜索 "Microsoft Xamarin",可以找到大量高质量的技术分享。
  • 社区:Stack Overflow、GitHub、Xamarin 开发者论坛。

第六部分:总结与未来

Xamarin Studio (现为 Visual Studio for Mac) 是一个功能强大且成熟的跨平台开发工具,它让 .NET 开发者能够利用自己的 C# 技能,高效地构建高质量的跨平台移动应用。

重要提示:.NET MAUI

微软正在推出新一代的跨平台框架 .NET MAUI (Multi-platform App UI),它整合了 Xamarin.Forms 和 Xamarin.Essentials,并进行了大量优化,是 Xamarin 的直接继承者

  • 现状:Xamarin 仍受支持,但所有新功能都将集中在 .NET MAUI 上。
  • 建议:对于新项目,强烈建议直接学习并使用 .NET MAUI,其 API 与 Xamarin.Forms 非常相似,迁移成本不高,本教程中的许多概念(如 XAML, MVVM, 常用控件)在 .NET MAUI 中同样适用。

希望这份教程能帮助你顺利开启 Xamarin 之旅!祝你编码愉快!

分享:
扫描分享到社交APP
上一篇
下一篇