背景:iPad 上有一款笔记软件 Note Always 我很喜欢,可惜开发者很久没有更新,自己有些需求想满足可没有其他软件能替代。于是萌生自己开发的想法。 主要需求是自己开发自己用,做得还行就开源出去。自己以前也没开发过 iOS app 算是给自己培养个爱好。 自己情况:算法选手,啥都用 Python 。C++有点大学里写数据结构的底子。 打开 Xcode 新建项目看着有点晕,借宝地咨询一下如何正确开始 iOS 开发,不求多么高级的架构只要自己能玩玩就行。
|  |      1devcat9      2022-05-04 08:13:43 +08:00 我看了下,这类软件门槛应该不低,不仅仅是 CRUD 。这种 notes 可以手写,还是蛮复杂的。 C++ 熟悉的话,写 iOS 应该没什么难度。难点是如何调教好 iOS 开发的 flow 。Xcode 这个 IDE UI 说实话挺简单的,但是不好用。 Disclamier: 专业 iOS 开发。 | 
|  |      2devcat9      2022-05-04 08:14:40 +08:00 楼主也可以说下这个 app 特色在哪里?我这里感觉和 OneNote ,GoodNotes 之类的没什么太大区别 | 
|      3shawnliu03 OP @devcat9 感谢回复。其实我更多的是拿这个 app 当白板 /会议记录这样的写。本身有用 A4 纸记东西的习惯。 最大的痛点是用笔记录时可以用手当橡皮。写起来避免了切工具用起来十分顺畅。其他功能包括用笔画圈选中区域可以随意拖动里面的内容。手绘的一些简单的形状可以自动修成标准形状:比如直线,圆圈,方块等,但不会特别标准,保留了手写的感觉。 目前想要的额外功能包括 seamless pages (双指拖动页面),Notebook level 的一些功能,比如合并不同 notebooks ,单个 page 的预览等。 | 
|      4shinsekai      2022-05-04 09:56:19 +08:00 via Android 业余玩家不应该从 Swift playground 入手吗 | 
|  |      5devcat9      2022-05-04 09:58:02 +08:00  1 「手绘的一些简单的形状可以自动修成标准形状:比如直线,圆圈,方块等,但不会特别标准,保留了手写的感觉。」这个看起来算法实现不容易,不过应该是楼主擅长的部分。 个人认为可以 UIKit 写,这种 app 用 SwiftUI 没什么意义。 Swift Playground 有个问题就是,太不完善。 算法核心部分甚至都可以用楼主熟悉的 C++ 写。 整个 app 的复杂度不低。 | 
|      6srlp      2022-05-04 10:17:25 +08:00 via iPhone 建议考察一下 https://excalidraw.com/ | 
|      7shawnliu03 OP @fansvista 说来惭愧。下载了 playground 玩了前两节课感觉有点简单的离谱,跟给三岁小孩的数学题一样。创建一个新的感觉很迷茫不知道干什么… | 
|      8shawnliu03 OP | 
|  |      9icyalala      2022-05-04 13:07:40 +08:00  1 对楼主这种情况,不要 Playground 、SwiftUI ,甚至可以先不用看 Swift 。 直接 UIKit ,Objective-C++,楼主的 C++ 经验也能直接用进来。 然后找个成熟些的开源方案先尝试改改看,比如 https://github.com/adamwulf/loose-leaf | 
|  |      10Chism      2022-05-04 16:10:45 +08:00 react-native 一把梭 | 
|  |      11learningman      2022-05-04 17:03:56 +08:00 via Android 我给自己弄了个,不过是安卓的。 真有人一年给苹果交 600 写玩具啊( | 
|  |      12kkhaike      2022-05-04 18:22:53 +08:00 @shawnliu03 要不一起合作。我也有几年没写了。想重新熟悉下。wx: a2toYWlrZQ== | 
|  |      13run2      2022-05-04 19:32:57 +08:00  1 从 CS193P 开始,然后找资料专注学习 PencilKit 和 Metal ? 给你推荐 react native 的可能连 PencilKit 都没听过 😂 https://github.com/0si43/PiecesOfPaper 这个项目能看懂估计就能完成你的需求了 | 
|  |      14Veneris      2022-05-04 20:43:50 +08:00 @fansvista 我也纠结这个问题,playground 这个东西是不是有些过于简单,过完似乎也不知道如何下手,还是我打开姿势不对 | 
|      15shawnliu03 OP @icyalala 感谢建议。我在看 Swift 的 Documentation ,先从语言层面熟悉一下。花了几分钟熟悉了 Xcode 的 template 大概明白了一个项目基础的组成部分。在这之前看 GitHub 上一些开源软件的时候感觉无从看起。都不知道哪个文件夹是干什么的 | 
|      16shawnliu03 OP @learningman 我没交 Apple Developer Program 的钱。因为自己是个苹果全家桶用户,所以就从 iOS 开发下手啦。 | 
|      17shawnliu03 OP @kkhaike 哈哈感谢你的提议。我现在还是纯新手摸索阶段,这个项目也是个爱好所以开发时间可能会拖的很长,不知道你意下如何。 | 
|      18shawnliu03 OP @sobigfish 感谢建议和指路!看了看 193P 的大纲感觉还不错,应该比 YouTuber 靠谱😂。前面也有好心人指路了 repo 。我去仔细研究一下。 | 
|      19shawnliu03 OP @Chism 谢谢提议。自己之前用 react native 写过一个 toy project 。但因为需求是一个 iPad 的笔记软件,甚至不会在 iPhone 上用所以暂时先不考虑这类通用框架。 | 
|      20dearmymy      2022-05-04 23:01:21 +08:00 ios 上架很烦的,而且要每年交钱,还不跨平台,既然笔记软件,还不如开发个 web  ,有那钱不如买个服务器,还能多平台备份。我是感觉很多软件 pwa 对于手机足够了。 | 
|  |      22learningman      2022-05-04 23:33:20 +08:00 @shawnliu03 #16 你不交这个钱,你写好了也没法用啊,还是说你打算每 7 天重装一次应用? | 
|      23okakuyang      2022-05-05 09:33:40 +08:00 “手绘的一些简单的形状可以自动修成标准形状:比如直线,圆圈,方块等 ” 苹果自带这个功能都不用另外实现。 建议用 swift 语言,比较现代,学起来不费劲。而且现在所有库都是靠拢 swift ,oc 的基本上不更新了,而且 oc 和 c++差别挺大的。 | 
|      24aeli      2022-05-05 10:13:13 +08:00 斯坦福的 swift 教程看完,再花点钱找个中高级 iOS 到咖啡馆手把手带你做一个简单项目,基本上你就能学会了。 | 
|  |      25lujiaosama      2022-05-05 11:26:15 +08:00 @aeli 做个简单项目还需要中高级 iOS 面对面手把手,对于有代码基础的来说不是有手就行花点时间的事情么? 问点有深度的问题才需要吧. 面对面请教时间成本经济成本都很高. | 
|  |      26kkhaike      2022-05-05 12:41:11 +08:00 @shawnliu03 完全辅导解惑性质也行 | 
|  |      27wu67      2022-05-05 13:49:37 +08:00 可以但没必要. 个人认为, 各平台近来对个人开发越来越不友好了(指上架等各种门槛), 兴趣使然的话, 还不如整前端套壳那种 app, 不考虑兼容的话直接跟着最新的教程走就行, 简单粗暴 | 
|      28aeli      2022-05-05 15:46:31 +08:00 @lujiaosama 他这个笔记 app ,明显不是他自我认知的简单项目。另外找中高级的当老师,是会带他知道正确的项目结构和少走弯路,主要还是要自学的。 | 
|      29DogeFlyKite      2022-05-05 18:57:06 +08:00 @learningman 你好,有的(比如我这个二傻子 | 
|  |      30learningman      2022-05-05 20:36:22 +08:00 @DogeFlyKite 这还能绷得住不换安卓也是真爱 | 
|      31jones2000      2022-05-06 00:24:04 +08:00 h5页面做一个, 外面加一个壳。 | 
|      32luozic      2022-05-06 10:26:37 +08:00 笔记软件非常复杂,即使不考虑同步问题。 | 
|      33DogeFlyKite      2022-05-09 20:08:42 +08:00 @learningman 我是从安卓换的 iOS ,以前是也是安卓开发来着 | 
|      34hdcola      2022-05-16 06:11:30 +08:00 @shawnliu03 耐心点,至少到 Learn code 1 和 2 整完,认真点两个半天就完事儿了。 |