区块链技术博客
www.b2bchain.cn

2020年了,我们能用SwiftUI开发产品吗?求职学习资料

本文介绍了2020年了,我们能用SwiftUI开发产品吗?求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

先说答案,能。

让咱们一步一步来做选择。

第1步:Native?Web?Hybrid?

首先,有这些大方向摆在我们的面前:

  • Native App 原生应用
  • Web App 网页应用
  • Hybrid App 混合应用

Native App

优点:

  • 性能优秀。
  • 可以使用系统原生组件,基本不会太丑,而且体验流畅。
  • 可以使用系统底层开放的API,包含软件能力和硬件能力,比如通知推送、加速计等。

缺点:

  • 如果App跨平台,而且使用纯粹的原生开发,那么开发语言就至少得学习2门(iOS学习Swift、Android学习Kotlin)。
  • 如果使用Flutter、React Native等跨平台方案开发,虽然语言只用学习一门了(Flutter学习Dart、React Native学习JavaScript),但是调用系统API时,免不了要接触到原生开发。而且,跨平台兼容性的问题也够大家喝一壶的。 此外,对于iOS平台来说,此类方案开发的App,存在被拒审的潜在风险。

Web App

优点:

  • 如果App跨平台,也只需要掌握HTML+CSS+JavaScript就行,因为Web App说白了就是个网页。
  • 因为是网页,所以无需下载安装。
  • 因为是网页,所以无需应用商店审核。
  • 因为是网页,所以100%支持热更新。

缺点:

  • 因为是网页,所以性能较差。
  • 因为是网页,所以无法使用系统底层开放的API。

Hybrid App

先用Native做一个壳,然后使用Webview内嵌网页,这就是Hybrid App了。优点嘛,就是很适合那些「咱们要有一个App」的传统企业。

Native!

大部分独立开发者,做的都是工具型App,此类App往往需要系统API来完成必要的功能。所以,对于独立开发者,我无疑推荐做Naitve App。

第2步:Objective-C?Swift?

Objective-C的Hello World

#import <Foundation/Foundation.h> int main(int argc, char *argv[]) {     @autoreleasepool {         NSLog(@"Hello World!");     }    return 0; }

Swift的Hello World

print("Hello, world")

Swift!

我觉得,看完上面的Hello World,大家心里应该有数了。

选Swift吧,它可以用更少量、更现代的代码,去完成同样的事情。

不过,还是有很多库,使用Objective-C写成,怎么办呢?别的不说,微信的SDK,就没有Swift版本,连示例代码都是Objective-C的。

其实,有很多工具可以把Objective-C代码转换为Swift代码。比如,Swiftify就提供在线转换服务。

以微信SDK为例,微信官方的一段示例代码为:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {     //向微信注册     [WXApi registerApp:APP_ID universalLink:UNIVERSAL_LINK];     return YES; }

经过Swiftify的自动转换,得到的Swift代码就是:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {     //向微信注册     WXApi.registerApp(         APP_ID,         universalLink: UNIVERSAL_LINK)     return true }

第3步:UIKit?SwiftUI?

假设咱们要做1个简单的计数器,点击一下按钮,数字就会加1。这是一个简单的数据绑定场景。

UIKit的数据绑定

首先,拖动1个Label组件、1个Button组件到StoryBoard上,完成UI布局。

2020年了,我们能用SwiftUI开发产品吗?

然后,通过代码,声明插座变量、动作方法、数据模型。

先说答案,能。

让咱们一步一步来做选择。

第1步:Native?Web?Hybrid?

首先,有这些大方向摆在我们的面前:

  • Native App 原生应用
  • Web App 网页应用
  • Hybrid App 混合应用

Native App

优点:

  • 性能优秀。
  • 可以使用系统原生组件,基本不会太丑,而且体验流畅。
  • 可以使用系统底层开放的API,包含软件能力和硬件能力,比如通知推送、加速计等。

缺点:

  • 如果App跨平台,而且使用纯粹的原生开发,那么开发语言就至少得学习2门(iOS学习Swift、Android学习Kotlin)。
  • 如果使用Flutter、React Native等跨平台方案开发,虽然语言只用学习一门了(Flutter学习Dart、React Native学习JavaScript),但是调用系统API时,免不了要接触到原生开发。而且,跨平台兼容性的问题也够大家喝一壶的。 此外,对于iOS平台来说,此类方案开发的App,存在被拒审的潜在风险。

Web App

优点:

  • 如果App跨平台,也只需要掌握HTML+CSS+JavaScript就行,因为Web App说白了就是个网页。
  • 因为是网页,所以无需下载安装。
  • 因为是网页,所以无需应用商店审核。
  • 因为是网页,所以100%支持热更新。

缺点:

  • 因为是网页,所以性能较差。
  • 因为是网页,所以无法使用系统底层开放的API。

Hybrid App

先用Native做一个壳,然后使用Webview内嵌网页,这就是Hybrid App了。优点嘛,就是很适合那些「咱们要有一个App」的传统企业。

Native!

大部分独立开发者,做的都是工具型App,此类App往往需要系统API来完成必要的功能。所以,对于独立开发者,我无疑推荐做Naitve App。

第2步:Objective-C?Swift?

Objective-C的Hello World

#import <Foundation/Foundation.h> int main(int argc, char *argv[]) {     @autoreleasepool {         NSLog(@"Hello World!");     }    return 0; }

Swift的Hello World

print("Hello, world")

Swift!

我觉得,看完上面的Hello World,大家心里应该有数了。

选Swift吧,它可以用更少量、更现代的代码,去完成同样的事情。

不过,还是有很多库,使用Objective-C写成,怎么办呢?别的不说,微信的SDK,就没有Swift版本,连示例代码都是Objective-C的。

其实,有很多工具可以把Objective-C代码转换为Swift代码。比如,Swiftify就提供在线转换服务。

以微信SDK为例,微信官方的一段示例代码为:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {     //向微信注册     [WXApi registerApp:APP_ID universalLink:UNIVERSAL_LINK];     return YES; }

经过Swiftify的自动转换,得到的Swift代码就是:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {     //向微信注册     WXApi.registerApp(         APP_ID,         universalLink: UNIVERSAL_LINK)     return true }

第3步:UIKit?SwiftUI?

假设咱们要做1个简单的计数器,点击一下按钮,数字就会加1。这是一个简单的数据绑定场景。

UIKit的数据绑定

首先,拖动1个Label组件、1个Button组件到StoryBoard上,完成UI布局。

2020年了,我们能用SwiftUI开发产品吗?

然后,通过代码,声明插座变量、动作方法、数据模型。

先说答案,能。

让咱们一步一步来做选择。

第1步:Native?Web?Hybrid?

首先,有这些大方向摆在我们的面前:

  • Native App 原生应用
  • Web App 网页应用
  • Hybrid App 混合应用

Native App

优点:

  • 性能优秀。
  • 可以使用系统原生组件,基本不会太丑,而且体验流畅。
  • 可以使用系统底层开放的API,包含软件能力和硬件能力,比如通知推送、加速计等。

缺点:

  • 如果App跨平台,而且使用纯粹的原生开发,那么开发语言就至少得学习2门(iOS学习Swift、Android学习Kotlin)。
  • 如果使用Flutter、React Native等跨平台方案开发,虽然语言只用学习一门了(Flutter学习Dart、React Native学习JavaScript),但是调用系统API时,免不了要接触到原生开发。而且,跨平台兼容性的问题也够大家喝一壶的。 此外,对于iOS平台来说,此类方案开发的App,存在被拒审的潜在风险。

Web App

优点:

  • 如果App跨平台,也只需要掌握HTML+CSS+JavaScript就行,因为Web App说白了就是个网页。
  • 因为是网页,所以无需下载安装。
  • 因为是网页,所以无需应用商店审核。
  • 因为是网页,所以100%支持热更新。

缺点:

  • 因为是网页,所以性能较差。
  • 因为是网页,所以无法使用系统底层开放的API。

Hybrid App

先用Native做一个壳,然后使用Webview内嵌网页,这就是Hybrid App了。优点嘛,就是很适合那些「咱们要有一个App」的传统企业。

Native!

大部分独立开发者,做的都是工具型App,此类App往往需要系统API来完成必要的功能。所以,对于独立开发者,我无疑推荐做Naitve App。

第2步:Objective-C?Swift?

Objective-C的Hello World

#import <Foundation/Foundation.h> int main(int argc, char *argv[]) {     @autoreleasepool {         NSLog(@"Hello World!");     }    return 0; }

Swift的Hello World

print("Hello, world")

Swift!

我觉得,看完上面的Hello World,大家心里应该有数了。

选Swift吧,它可以用更少量、更现代的代码,去完成同样的事情。

不过,还是有很多库,使用Objective-C写成,怎么办呢?别的不说,微信的SDK,就没有Swift版本,连示例代码都是Objective-C的。

其实,有很多工具可以把Objective-C代码转换为Swift代码。比如,Swiftify就提供在线转换服务。

以微信SDK为例,微信官方的一段示例代码为:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {     //向微信注册     [WXApi registerApp:APP_ID universalLink:UNIVERSAL_LINK];     return YES; }

经过Swiftify的自动转换,得到的Swift代码就是:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {     //向微信注册     WXApi.registerApp(         APP_ID,         universalLink: UNIVERSAL_LINK)     return true }

第3步:UIKit?SwiftUI?

假设咱们要做1个简单的计数器,点击一下按钮,数字就会加1。这是一个简单的数据绑定场景。

UIKit的数据绑定

首先,拖动1个Label组件、1个Button组件到StoryBoard上,完成UI布局。

2020年了,我们能用SwiftUI开发产品吗?

然后,通过代码,声明插座变量、动作方法、数据模型。

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 2020年了,我们能用SwiftUI开发产品吗?求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们