当前位置 > 主页 > 行业简报 >


如何从Web开发转向移动开发?

2015-08-31 10:10

  几个月前,我开始用 Android 和iOS 来开发移动应用程序,然后多亏Xamarin,我依然可以使用C#。我之所以写这篇文章是想分享一下我做了这个改变之后的感受。



  为什么下这个决定


  你可能会问,为什么我会决定从Web开发转向移动开发。因为我想要做一些新的东西以学习新的技能,虽然在 web 编程上我仍然有很多需要学习的地方。


  我认为,移动app有一个前途光明的未来,虽然已经有很多 app 存在于网上的商店里。但是,新的移动设备来了,如智能手表,它们是开发人员崭新的机遇。这是一个学习如何为移动设备创建应用程序的很好契机。


  更何况我目前就职的公司恰好有这个机会能够使用我最喜欢的语言(C#)来开发新的 Android 和iOS应用程序,那么为什么不利用这个机会呢。


  新的编程模式


  我知道编程的方式是会变的,这从我以前经历过的一个叫做 Windows Phone 的项目,一同参与开发移动应用程序时就已经得知。但我还没有准备好要做什么,并且也不认为我能做好准备。


  不像网站中的应用程序有特定的生命周期,你不能只是用响应来回复请求。几乎所有我从构建 Web 应用程序中学到的东西都不能帮助我——范式是全新的。


  在这个领域中,异步编程是强制性的,因为如果一切都运行在用户界面(UI)线程上的话,应用程序会停止。我一直都想提高自己在这方面的技能,而且也被我找到了一个实现这个目标的好方法。


  分离关注点也不同,不再有 Model View Controller(MVC),使用的是 Model View ViewModel (MVVM)模式。即使我已经用过(在 WPF 和 Windows Phone 中),但并不是在同一水平,我仍然有很多东西需要学习。


  当然,你还必须使用模拟器来测试应用程序,每次要测试的时候,你都必须建立并部署模拟器,你不能只是刷新页面来看发生的变化。反馈环很长,大多数时候都需要几分钟才行,因此调试会很慢也会很重要。


  走出安乐窝


  我大概在两个月前,开始工作于应用程序,并且现在仍然有很多东西需要学习。我需要处理两个我完全不曾涉足的生态系统(Android 和 iOS),两个我一无所知的框架(Xamarin 和 MvvmCross)和一些并不容易满足的业务需求。不过,幸运的是,至少我知道如何使用C#。


  现在的我每天都在奋斗,我有很多东西需要考虑,主要的就是一些与我新的开发环境相关的“怎么做?”的问题。还有很多“如果…怎么办?”的问题:“如果网络不可用,怎么办”,“如果这个解决方案太慢,怎么办?”,“如何为客户提供最好的体验?”……


  有时候,我一整天都没有办法产出任何东西,说实话,那个时候我会觉得自己真没用,是个欺世盗名之徒——既然我不能在工作上生产出任何有价值的东西,那么怎么能认为自己是一个专业的软件开发人员呢?


  嗯,我觉得这种感觉就像走出自己的安乐窝,正处于学习阶段的一个峰谷中。


  如何从Web开发转向移动开发?


  ▲有峰谷的学习速率


  不放弃


  不过我不是唯一一个正在转换的人,我不是一个人在战斗。团队中的所有人都不得不面对相同分量的学习,高级开发人员和初级开发人员皆是如此。


  现在回过头去看我这两个月的历程,我认识到,我还存在着各种不足,需要走的路还有很多,但我也学到了很多东西,比如说现在对于异步编程和那些 MVVM 模式的概念相对而言熟悉多了。


  如果我想成为一个专业的移动开发人员,那么我依然需要继续学习,继续完成我的旅程,学习我缺乏的技能,产出符合客户期望的价值。即使我的工作时不时地让我苦不堪言,但是我不后悔,因为这是一个非常棒的学习机会。不管花多少时间我一定会成功。


最近开班 more>
  • 全栈开发
  • 前端基础班
  • 软件测试
  • Java大数据开发工程师
  • 云原生精英班
  • 开发课程基础班第四期
  • 开发课程基础班第三期
  • 开发课程基础班第二期
  • 开发课程基础班第一期
  • Java Web UI Python
  • CISP
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • OCM 12C
  • OCP 19C
  • RHCE 9.0
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • vip班
  • 考试计划
  • 脱产班
  • 脱产班
  • 脱产班
  • 双休班
  • 双休班
  • 双休班
  • 双休班
  • 业余班
  • 业余班
  • 10月16日
  • 9月23日
  • 9月2日
  • 9月30日
  • 8月26日
  • 10月8日
  • 9月23日
  • 9月16日
  • 9月9日
  • 随时开课
  • 9月21日
  • 10月17日
  • 9月18日
  • 9月2日
  • 11月2日
  • 10月26日
  • 9月7日
  • ——
  • 随时开课
  • 9月26日
    • 姓 名 :
    • 电 话 :
    • 课 程 :

技术交流群

  • Java大数据交流群560819979加入
  • Python技术交流群595083299加入
  • Oracle技术交流群595119011加入
  • Web前端技术交流群604697610加入
  • Huawei技术交流群482919361加入
  • Redhat技术交流群587875348加入
  • UI设计技术交流群511649801加入
  • Cisco技术交流群596886705加入
  • IT运维技术交流群605888381加入