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