身为果粉的你-怎么可以不会Swift/SwiftUI 编程

2021-09-14 22:36:16 288点赞 389收藏 28评论

编程从孩子抓起--身为果粉的你-不能不知道的Swift/SwiftUI 编程

作为一个退役的 码农,去年想教两个念 高中的孩子 学习编程,

经过一番探索与学习,写了一份简单的教材,其中构想有几个独特之处:

身为果粉的你-怎么可以不会Swift/SwiftUI 编程

1. 选择 Swift 程序语言(而不是当前当红的 Python 或 Scratch)

2. 开发环境以 Swift Playgrounds 为主(而不用Xcode)

3. 自行命名的变量、函数、结构、类... 等等,尽量采用中文(而不是英文)

由于对象是高中生,所以讲解理论必须尽量浅白,只介绍基本必要的术语,多用实例与比喻。

给你们普及一下 Swift/SwiftUI

苹果于2019年度WWDC全球开发者大会上,发布了基于Swift

建立的声明式框架– SwiftUI 其可以用于watchOS、tvOS、macOS等苹果旗下产品的应用开发,统一了苹果平台的UI框架

我主要准备将以下几个内容

Swift资料类型和基本句型等等

SwiftUI的入门知识

SwiftUI2D的平面绘画

网络资料的存取

人工智慧和app创造先这些。

首先确认有合适的练习环境(软硬件)可用, 可以用网页版的Swift编译器来当作开发环境,当然如果条件允许的话,用 Swift Playgrounds (需要在iPad或MacOS的 App Store 下载)来练习是更好

三方(非苹果官方)的网页版Swift编译器有好几个,列举网址如下,大致测试过都没问题

1.Online Swift Playground http://online.swiftplayground.run/

2. Replit

先用一个范例程序来测试

“计算时间差:判断质数快速算法

Creted by Heman, 2020/11/11 import Foundation

func 判断质数(_ n: Int) -> Bool {

if n <=

1 { return false }

if n == 2 { return true } var 整数 = 2

let 平方根 =

sqrt(Double(n))

while Double(整数) <= 平方根 { if (n % 整数) == 0 { return false}

整数 +=

1 } return true }

var

数量 = 0 let 执行前 = Date()

let 上限 = 10000

for i in 1...上限 {

if 判断质数(i) { 数量 += 1 print(i, terminator: " ") } } let 时间差 = Date(). timeIntervalSince(执行前)

print("n1~(上限)总共(数量)个质数")

print("总计花(时间差)秒")”

将以上范例程序拷贝贴上,按Run执行

身为果粉的你-怎么可以不会Swift/SwiftUI 编程

就是 下面这个效果

是不是非常的简单呢

身为果粉的你-怎么可以不会Swift/SwiftUI 编程

身为果粉的你-怎么可以不会Swift/SwiftUI 编程

Swift Playgrounds 的简单操作,打一段自我介绍

非常的简单

身为果粉的你-怎么可以不会Swift/SwiftUI 编程

这个范例程序只有6行代码,看起来非常简单,其实动手起来还是需要一些基础的

Swift Playgrounds是Apple在2016年发表的一个App (for iPad),用来学习Swift编程。 在这之前,想要学习Apple的软件开发,不管是Swift或Objective-C,只有一个选择,就是用Xcode,配合一台Mac电脑。

问题是Xcode虽然免费,但整套软件非常庞大,为了支持过去到现在各版本的软件以及各类Apple硬件(包括iPhone/iPad/Watch/TV),目前版本Xcode 12大小已超过11GB,比整个MacOS还大

身为果粉的你-怎么可以不会Swift/SwiftUI 编程

从2020年开始,MacOS(通过Catalyst技术)也可执行Swift Playgrounds,所以除了iPad之外,只要一台最低阶的Mac mini或Macbook,就足以开始学习Swift编程。

更不错的是,今年WWDC21中扩充Swift/SwiftUI很多功能,并且宣布新版(预计2021/9开放) Swift Playgrounds 4 可以开发完整的App,上传到App Store中。

最后讲一讲 app 微信的通信机制吧

,通讯软件主要的功能,是让使用者之间彼此对话,从使用者的角度,觉得是透过通讯设备(计算机或手机)与朋友对话,看起来像是这样:

身为果粉的你-怎么可以不会Swift/SwiftUI 编程

但其实真正达成对话功能的是软件(程序),设备与网路是底层的载体或媒介,所以从程序的角度来看,应该是这样

身为果粉的你-怎么可以不会Swift/SwiftUI 编程

: 用户输入讯息到通讯软件,通讯软件并无法直接连到对方的手机中(也不知道对方在哪里),而是上传到云端的服务器软件(称为后台软件或云端软件),再由服务器软件传到对方手机中的通讯软件。 当我们打开微信时,微信会马上跟微信后台软件 沟通,所以后台软体知道所有上线的微信所在(网路位置,不是实体位置)。

不过程序 没办法直接控制硬件,而是通过操作系统(称为系统软件)来控制键盘、屏幕以及网络,所以更进一步的样子是下面

这样。

身为果粉的你-怎么可以不会Swift/SwiftUI 编程

程序操作系统之间的沟通,通常是透过「系统呼叫(System Call)」,这部分由程序开发环境(也就是Swift Playgrounds或Xcode)来帮我们转译,也就是说,Swift Playgrounds会将我们写的 print("Hello world!") 转译成某些系统呼叫,将字符串输出到主控台,这样的转译动作,称为编译

(Compile)。

所以应用软件的编程,大部分的工作是在与操作系统沟通,好的程序员必须熟悉操作系统的功能,要擅于跟电脑沟通,但是久而久之,反而会不擅于跟人对话。

总结:

编程是一门自己动手的学科,就像骑脚踏车或游泳一样,

光看书或看别人做,是不可能学好的,只有自己动手操作过,

然后去发现一些问题、试着去解决或改善问题,才能真正变成自己的技能。

身为果粉的你-怎么可以不会Swift/SwiftUI 编程

未完待写

展开 收起

《国家地理 每日精选》iOS数字版软件

《国家地理 每日精选》iOS数字版软件

暂无报价

《Picsew》iOS数字版软件

《Picsew》iOS数字版软件

暂无报价

《kirakira+》 iOS软件

《kirakira+》 iOS软件

暂无报价

《扫描全能王付费版》iOS数字版软件

《扫描全能王付费版》iOS数字版软件

暂无报价

《拍照取字 专业版》iOS数字版软件

《拍照取字 专业版》iOS数字版软件

暂无报价

《航旅纵横PRO》iOS数字版应用

《航旅纵横PRO》iOS数字版应用

暂无报价

《一言》iOS数字版软件

《一言》iOS数字版软件

暂无报价

《凤凰新闻(专业版)》iOS数字版应用

《凤凰新闻(专业版)》iOS数字版应用

暂无报价

《模拟巴黎》iOS数字版软件

《模拟巴黎》iOS数字版软件

暂无报价

《空调万能遥控器》iOS数字版软件

《空调万能遥控器》iOS数字版软件

暂无报价

《Camera+ 2》iOS数字版软件

《Camera+ 2》iOS数字版软件

暂无报价

《TouchRetouch》iOS数字版软件

《TouchRetouch》iOS数字版软件

暂无报价

《iWoman》iOS中文软件

《iWoman》iOS中文软件

暂无报价

《Facetune》iOS数字版软件

《Facetune》iOS数字版软件

暂无报价

《1Password》 ios密码管理软件

《1Password》 ios密码管理软件

暂无报价

《SleepTown》iOS数字版软件

《SleepTown》iOS数字版软件

暂无报价
28评论

发表评论请 登录
  • 最新
  • 最热
评论举报

请选择举报理由

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
389
扫一下,分享更方便,购买更轻松