很多人以为C#只能用来做Windows程序或者后端服务,其实它早就能开发手机App了。特别是你手头有个小项目想快速上线安卓和iOS双平台,C#配合一些现代框架,完全能搞定。
用Xamarin,C#也能写原生App
Xamarin是微软推出的跨平台移动开发框架,已经被整合进Visual Studio。你可以用C#写代码,共享大部分逻辑,同时为安卓和iOS生成性能接近原生的应用。比如你做个记账App,界面可以分别用原生控件实现,但数据计算、网络请求这些共用代码,一套就够了。
安装完Visual Studio时勾选“移动开发(.NET)”工作负载,就能直接创建Xamarin项目。运行起来之后,代码会编译成对应平台的本地应用,不是网页套壳,体验很流畅。
MAUI:Xamarin的升级版
.NET MAUI(.NET Multi-platform App UI)是Xamarin.Forms的进化形态,支持在一套代码里定义界面和逻辑,自动适配手机、平板甚至桌面系统。比如下面这个简单页面:
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui">
<StackLayout>
<Label Text="欢迎使用C#开发的App" HorizontalOptions="Center" />
<Button Text="点击我" Clicked="OnButtonClicked" />
</StackLayout>
</ContentPage>
这段XAML加C#代码可以在安卓和iOS上同时运行。调试时连上手机或启动模拟器,修改保存后热重载功能还能实时预览界面变化,效率很高。
Unity也能打包装手机App
如果你要做的是游戏或者带交互的视觉类应用,Unity引擎本身就是用C#驱动的。很多手游比如《炉石传说》移动端就是Unity打包出来的。你写个AR小工具或者简单的2D小游戏,导出时选择Android或iOS平台,直接生成安装包。
虽然Unity更偏向图形处理,但普通功能型App也能做,只是UI布局不如MAUI那么灵活。适合对动画、传感器、摄像头有强需求的场景。
实际开发中要注意啥
虽然是跨平台,但某些功能仍需平台特定处理。比如调用相机权限,iOS和安卓的配置方式不同,要在平台项目里单独设置。C#可以通过DependencyService或平台项目中的实现类来桥接这些差异。
另外,打包后的应用体积会比纯原生的大一些,毕竟带了运行时环境。但对于大多数非极致轻量的需求来说,这点代价换来的开发效率提升是值得的。
现在打开Visual Studio新建一个.NET MAUI项目,十几分钟后你可能就已经在自己手机上跑起第一个C#写的App了。