最近项目中需要移动客户端,由于团队基本上使用.Net产品线,所以决定使用Xmarin进行开发,这样技术路线统一,便于后期维护。官网上是这样介绍的“ Xamarin 允许你使用 .NET 代码和特定于平台的用户界面生成适用于 Android、iOS 和 macOS 的本机应用。 Xamarin.Forms 允许你使用采用 C# 或 XAML 编写的共享 UI 代码生成本机应用。” 本文以数独游戏开发为例,总结一下Xamarin开发的基本过程。

环境准备

开发Xamarin应用需要安装Visual Studio 以及相关的组件,如下图所示:



选择安装“使用.Net的移动安装”。

创建Xamarin项目

打开Visual Studio 2022,选择创建Xamarin Form项目:



选择选项卡式布局:



解决方案中包括三个项目:一个共享类库和针对Android以及iOS的项目,在共享类库中编写界面和主要的逻辑,在另外两个项目中编写Android和iOS特定的部分。



这个项目中包括了几种常用的界面模板,参考这些模板可以编写我们自己的应用。从共享类库的结构可以看出,Xamarin类似于WPF桌面编程,也是采用基于XAML编写界面,采用MVVM模式实现代码和界面的分离。

运行和调试

项目搭建完成,我们可以试着运行一下。Android系统的调试可以使用模拟器或者连接真机,个人觉得使用真机调试更快,更方便。我使用的是华为P30进行调试,使用数据线连接手机后,手机中会提示是否允许连接,确认后,在Visual Studio中就会出现相关的设备选项,如下图所示:



这时,就可以启动调试了。编译完成后,会在手机上部署这个应用,部署过程中手机上会有安全提示,部署完成后,应用会自动启动,手机上的界面如下:

这时可以进行调试了。

测试热加载

Xamarin支持热加载,也就是在调试运行期间,如果修改界面,在真机或者模拟器上可以即时看到修改的效果,大大提高开发的效率。首先,在真机上运行项目,然后在Views目录下找到AboutPage.xaml,修改下面的代码:


<ContentPage.Resources>
<ResourceDictionary>
<Color x:Key="Accent">#96d1ff</Color>
</ResourceDictionary>
</ContentPage.Resources>

将颜色##96d1ff改为red,这时,真机上界面马上发生了改变:

到这里我们已经完成了项目的创建,并且可以进行运行和调试,下一步增加我们需要的界面,并编写相关的逻辑。

使用Xamarin开发移动应用示例——数独游戏(一)项目的创建与调试的更多相关文章

  1. 使用Xamarin开发移动应用示例——数独游戏(二)创建游戏界面

    在本系列第一部分,我们创建了程序框架,现在我们创建游戏的界面,项目代码可以从Github下载:https://github.com/zhenl/ZL.Shudu .代码随项目进度更新. 首先在View ...

  2. 使用Xamarin开发移动应用示例——数独游戏(五)保存游戏进度

    项目代码可以从Github下载:https://github.com/zhenl/ZL.Shudu .代码随项目进度更新. 保存进度是移动应用的基本功能,在应用的使用过程中会有各种各样的可能导致使用中 ...

  3. 使用Xamarin开发移动应用示例——数独游戏(六)使用数据库

    项目代码可以从Github下载:https://github.com/zhenl/ZL.Shudu .代码随项目进度更新. 现在我们希望为应用增加更多的功能,比如记录每个完成的游戏,可以让用户自己添加 ...

  4. 使用Xamarin开发移动应用示例——数独游戏(七)添加新游戏

    项目代码可以从Github下载:https://github.com/zhenl/ZL.Shudu .代码随项目进度更新. 现在我们增加添加新游戏的功能,创建一个页面,编辑初始局面,并保存到数据库. ...

  5. 使用Xamarin开发移动应用示例——数独游戏(八)使用MVVM实现完成游戏列表页面

    项目代码可以从Github下载:https://github.com/zhenl/ZL.Shudu .代码随项目进度更新. 前面我们已经完成了游戏的大部分功能,玩家可以玩预制的数独游戏,也可以自己添加 ...

  6. 使用Xamarin开发移动应用示例——数独游戏(四)产生新游戏算法改进

    项目代码可以从Github下载:https://github.com/zhenl/ZL.Shudu .代码随项目进度更新. 前面我们使用一个数组保存预制的游戏,然后随机从中抽取一个游戏作为新游戏,如果 ...

  7. iOS开发 Swift开发数独游戏(一)

    一.前言 我姥姥是一名退休数学老师,一直很喜欢玩数独游戏.我以前答应过她要给她写一个数独游戏.本来计划是写一个Android应用的,但恰好我学了好长时间iOS开发一直没做什么"大项目&quo ...

  8. android开发——数独游戏

    最近研究了一下android,写了一个数独游戏,具体如下: 游戏界面需要重写一个ShuduView继承View, 然后自定义一个Dialog: 1.需要继承 Dialog 类, 2.并要定义一个有参构 ...

  9. iOS开发 Swift开发数独游戏(四) 游戏界面的界面与逻辑

    一.游戏界面涉及到的功能点 1)数独格子的建模 (1)绘制数独格子要考虑到标记功能 所以要在每个格子内预先塞入9个标记数字,仅数独格子算下来就有9*9*9=729个格子且存在大量嵌套(这导致我在操作S ...

随机推荐

  1. django——django链接mysql数据库

    1.创建项目 django-admin startproject django_mysql 2.创建App python manage.py startapp app1 3.Mysql数据库配置 (1 ...

  2. 【LeetCode】11. Container With Most Water 盛最多水的容器

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 个人公众号:负雪明烛 本文关键词:盛水,容器,题解,leetcode, 力扣,python ...

  3. 教学日志:javaSE-初识java

    一.编译执行第一个java程序 /* 总结: 1.编译执行第一个java程序 步骤如下: 1.安装JDK开发环境: 2.配置环境变量,JAVA_HOME,PATH;--验证环境变量配置是否成功 jav ...

  4. iNeuOS工业互联网操作系统,矿山动态产量计量系统和铁路车辆识别系统应用场景案例

    目       录 1.      概述... 2 2.      平台演示... 2 3.      矿山动态产量计量系统... 2 4.      铁路车辆识别系统... 4 1.   概述 iN ...

  5. MacOS使用Docker创建MySQL主从数据库

    一.拉取MySQL镜像 通过终端获取最新的MySQL镜像 docker pull mysql/mysql-server 二.创建MySQL数据库容器配置文件对应目录 我们在当前用户下创建一组目录,用来 ...

  6. Improving Adversarial Robustness Using Proxy Distributions

    目录 概 主要内容 proxy distribution 如何利用构造的数据 Sehwag V., Mahloujifar S., Handina T., Dai S., Xiang C., Chia ...

  7. Simplicial principal component analysis for density functions in Bayes spaces

    目录 问题 上的PCA Hron K, Menafoglio A, Templ M, et al. Simplicial principal component analysis for densit ...

  8. Salesforce LWC学习(三十八) lwc下如何更新超过1万的数据

    背景: 今天项目组小伙伴问了一个问题,如果更新数据超过1万条的情况下,有什么好的方式来实现呢?我们都知道一个transaction只能做10000条DML数据操作,那客户的操作的数据就是超过10000 ...

  9. 编写Java程序随机输入日期计算星期几,打印任意一年的日历

    需求说明: 随机输入日期计算星期几,打印任意一年的日历 已知,1900年1月1日是星期1,用户随机输入年月日,计算星期几 实现思路: 一.知道1900年1月1日为星期一,求输入的年份月份与1900年1 ...

  10. kubernetes部署第一个应用案例

    对比有无-o wide参数的区别 kubectl get pod --all-namespaceskubectl get pod --all-namespaces -o wide如下,查看所有Pod信 ...