身为果粉的你-怎么可以不会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 Playgrounds 的简单操作,打一段自我介绍
非常的简单
这个范例程序只有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还大
从2020年开始,MacOS(通过Catalyst技术)也可执行Swift Playgrounds,所以除了iPad之外,只要一台最低阶的Mac mini或Macbook,就足以开始学习Swift编程。
更不错的是,今年WWDC21中扩充Swift/SwiftUI很多功能,并且宣布新版(预计2021/9开放) Swift Playgrounds 4 可以开发完整的App,上传到App Store中。
最后讲一讲 app 微信的通信机制吧
,通讯软件主要的功能,是让使用者之间彼此对话,从使用者的角度,觉得是透过通讯设备(计算机或手机)与朋友对话,看起来像是这样:
但其实真正达成对话功能的是软件(程序),设备与网路是底层的载体或媒介,所以从程序的角度来看,应该是这样
: 用户输入讯息到通讯软件,通讯软件并无法直接连到对方的手机中(也不知道对方在哪里),而是上传到云端的服务器软件(称为后台软件或云端软件),再由服务器软件传到对方手机中的通讯软件。 当我们打开微信时,微信会马上跟微信后台软件 沟通,所以后台软体知道所有上线的微信所在(网路位置,不是实体位置)。
不过程序 没办法直接控制硬件,而是通过操作系统(称为系统软件)来控制键盘、屏幕以及网络,所以更进一步的样子是下面
这样。
程序操作系统之间的沟通,通常是透过「系统呼叫(System Call)」,这部分由程序开发环境(也就是Swift Playgrounds或Xcode)来帮我们转译,也就是说,Swift Playgrounds会将我们写的 print("Hello world!") 转译成某些系统呼叫,将字符串输出到主控台,这样的转译动作,称为编译
(Compile)。
所以应用软件的编程,大部分的工作是在与操作系统沟通,好的程序员必须熟悉操作系统的功能,要擅于跟电脑沟通,但是久而久之,反而会不擅于跟人对话。
总结:
编程是一门自己动手的学科,就像骑脚踏车或游泳一样,
光看书或看别人做,是不可能学好的,只有自己动手操作过,
然后去发现一些问题、试着去解决或改善问题,才能真正变成自己的技能。
未完待写











四条腿好
校验提示文案
值友7892613672
校验提示文案
试着买买
校验提示文案
abcdef4
校验提示文案
值友3124022789
校验提示文案
madper
校验提示文案
瑞士小熊
校验提示文案
利刃消灭
校验提示文案
风屿浪
校验提示文案
icybor
校验提示文案
一小片小羽毛
校验提示文案
不买还是人
校验提示文案
JMRW
校验提示文案
撸米安
校验提示文案
什么买得起
校验提示文案
国际白嫖分子
校验提示文案
西北狼
校验提示文案
西北狼
校验提示文案
aaabbbyyy
校验提示文案
值友7330157080
校验提示文案
好运气永不倒
校验提示文案
雪广枫原
校验提示文案
Tyor
校验提示文案
深圳无糖可乐之神
校验提示文案
LANXF
校验提示文案
Alphones
校验提示文案
值友7330157080
校验提示文案
aaabbbyyy
校验提示文案
西北狼
校验提示文案
西北狼
校验提示文案
国际白嫖分子
校验提示文案
什么买得起
校验提示文案
撸米安
校验提示文案
madper
校验提示文案
JMRW
校验提示文案
不买还是人
校验提示文案
一小片小羽毛
校验提示文案
值友3124022789
校验提示文案
icybor
校验提示文案
abcdef4
校验提示文案