业余玩家如果进行 iOS 开发 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
shawnliu03
V2EX    iDev

业余玩家如果进行 iOS 开发

  •  
  •   shawnliu03 2022-05-04 08:03:48 +08:00 via iPhone 9382 次点击
    这是一个创建于 1263 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景:iPad 上有一款笔记软件 Note Always 我很喜欢,可惜开发者很久没有更新,自己有些需求想满足可没有其他软件能替代。于是萌生自己开发的想法。 主要需求是自己开发自己用,做得还行就开源出去。自己以前也没开发过 iOS app 算是给自己培养个爱好。 自己情况:算法选手,啥都用 Python 。C++有点大学里写数据结构的底子。 打开 Xcode 新建项目看着有点晕,借宝地咨询一下如何正确开始 iOS 开发,不求多么高级的架构只要自己能玩玩就行。

    34 条回复    2022-05-16 06:11:30 +08:00
    devcat9
        1
    devcat9  
       2022-05-04 08:13:43 +08:00
    我看了下,这类软件门槛应该不低,不仅仅是 CRUD 。这种 notes 可以手写,还是蛮复杂的。

    C++ 熟悉的话,写 iOS 应该没什么难度。难点是如何调教好 iOS 开发的 flow 。Xcode 这个 IDE UI 说实话挺简单的,但是不好用。

    Disclamier: 专业 iOS 开发。
    devcat9
        2
    devcat9  
       2022-05-04 08:14:40 +08:00
    楼主也可以说下这个 app 特色在哪里?我这里感觉和 OneNote ,GoodNotes 之类的没什么太大区别
    shawnliu03
        3
    shawnliu03  
    OP
       2022-05-04 09:52:39 +08:00 via iPhone
    @devcat9 感谢回复。其实我更多的是拿这个 app 当白板 /会议记录这样的写。本身有用 A4 纸记东西的习惯。
    最大的痛点是用笔记录时可以用手当橡皮。写起来避免了切工具用起来十分顺畅。其他功能包括用笔画圈选中区域可以随意拖动里面的内容。手绘的一些简单的形状可以自动修成标准形状:比如直线,圆圈,方块等,但不会特别标准,保留了手写的感觉。
    目前想要的额外功能包括 seamless pages (双指拖动页面),Notebook level 的一些功能,比如合并不 notebooks ,单个 page 的预览等。
    shinsekai
        4
    shinsekai  
       2022-05-04 09:56:19 +08:00 via Android
    业余玩家不应该从 Swift playground 入手吗
    devcat9
        5
    devcat9  
       2022-05-04 09:58:02 +08:00   1
    「手绘的一些简单的形状可以自动修成标准形状:比如直线,圆圈,方块等,但不会特别标准,保留了手写的感觉。」这个看起来算法实现不容易,不过应该是楼主擅长的部分。

    个人认为可以 UIKit 写,这种 app 用 SwiftUI 没什么意义。
    Swift Playground 有个问题就是,太不完善。

    算法核心部分甚至都可以用楼主熟悉的 C++ 写。

    整个 app 的复杂度不低。
    srlp
        6
    srlp  
       2022-05-04 10:17:25 +08:00 via iPhone
    建议考察一下 https://excalidraw.com/
    shawnliu03
        7
    shawnliu03  
    OP
       2022-05-04 10:41:41 +08:00 via iPhone
    @fansvista 说来惭愧。下载了 playground 玩了前两节课感觉有点简单的离谱,跟给三岁小孩的数学题一样。创建一个新的感觉很迷茫不知道干什么…
    shawnliu03
        8
    shawnliu03  
    OP
       2022-05-04 10:51:33 +08:00 via iPhone
    @devcat9 感谢建议。我看了看 UI Kit 的 Documentation ,感觉可以一试。

    还有一个小疑问,以专业 iOS 开发的角度看大概需要多少工时?(抛去提到的那个算法部分)
    icyalala
        9
    icyalala  
       2022-05-04 13:07:40 +08:00   1
    对楼主这种情况,不要 Playground 、SwiftUI ,甚至可以先不用看 Swift 。
    直接 UIKit ,Objective-C++,楼主的 C++ 经验也能直接用进来。
    然后找个成熟些的开源方案先尝试改改看,比如 https://github.com/adamwulf/loose-leaf
    Chism
        10
    Chism  
       2022-05-04 16:10:45 +08:00
    react-native 一把梭
    learningman
        11
    learningman  
       2022-05-04 17:03:56 +08:00 via Android
    我给自己弄了个,不过是安卓的。
    真有人一年给苹果交 600 写玩具啊(
    kkhaike
        12
    kkhaike  
       2022-05-04 18:22:53 +08:00
    @shawnliu03 要不一起合作。我也有几年没写了。想重新熟悉下。wx: a2toYWlrZQ==
    run2
        13
    run2  
       2022-05-04 19:32:57 +08:00   1
    从 CS193P 开始,然后找资料专注学习 PencilKit 和 Metal ?
    给你推荐 react native 的可能连 PencilKit 都没听过

    https://github.com/0si43/PiecesOfPaper 这个项目能看懂估计就能完成你的需求了
    Veneris
        14
    Veneris  
       2022-05-04 20:43:50 +08:00
    @fansvista 我也纠结这个问题,playground 这个东西是不是有些过于简单,过完似乎也不知道如何下手,还是我打开姿势不对
    shawnliu03
        15
    shawnliu03  
    OP
       2022-05-04 20:58:59 +08:00 via iPhone
    @icyalala 感谢建议。我在看 Swift 的 Documentation ,先从语言层面熟悉一下。花了几分钟熟悉了 Xcode 的 template 大概明白了一个项目基础的组成部分。在这之前看 GitHub 上一些开源软件的时候感觉无从看起。都不知道哪个文件夹是干什么的
    shawnliu03
        16
    shawnliu03  
    OP
       2022-05-04 21:00:09 +08:00 via iPhone
    @learningman 我没交 Apple Developer Program 的钱。因为自己是个苹果全家桶用户,所以就从 iOS 开发下手啦。
    shawnliu03
        17
    shawnliu03  
    OP
       2022-05-04 21:05:12 +08:00 via iPhone
    @kkhaike 哈哈感谢你的提议。我现在还是纯新手摸索阶段,这个项目也是个爱好所以开发时间可能会拖的很长,不知道你意下如何。
    shawnliu03
        18
    shawnliu03  
    OP
       2022-05-04 21:08:41 +08:00 via iPhone
    @sobigfish 感谢建议和指路!看了看 193P 的大纲感觉还不错,应该比 YouTuber 靠谱。前面也有好心人指路了 repo 。我去仔细研究一下。
    shawnliu03
        19
    shawnliu03  
    OP
       2022-05-04 21:10:58 +08:00 via iPhone
    @Chism 谢谢提议。自己之前用 react native 写过一个 toy project 。但因为需求是一个 iPad 的笔记软件,甚至不会在 iPhone 上用所以暂时先不考虑这类通用框架。
    dearmymy
        20
    dearmymy  
       2022-05-04 23:01:21 +08:00
    ios 上架很烦的,而且要每年交钱,还不跨平台,既然笔记软件,还不如开发个 web ,有那钱不如买个服务器,还能多平台备份。我是感觉很多软件 pwa 对于手机足够了。
    ttgo
        21
    ttgo  
       2022-05-04 23:18:29 +08:00 via iPhone
    @fansvista 对有其他语言基础的人来说,playground 太肉了
    learningman
        22
    learningman  
       2022-05-04 23:33:20 +08:00
    @shawnliu03 #16 你不交这个钱,你写好了也没法用啊,还是说你打算每 7 天重装一次应用?
    okakuyang
        23
    okakuyang  
       2022-05-05 09:33:40 +08:00
    “手绘的一些简单的形状可以自动修成标准形状:比如直线,圆圈,方块等 ” 苹果自带这个功能都不用另外实现。
    建议用 swift 语言,比较现代,学起来不费劲。而且现在所有库都是靠拢 swift ,oc 的基本上不更新了,而且 oc 和 c++差别挺大的。
    aeli
        24
    aeli  
       2022-05-05 10:13:13 +08:00
    斯坦福的 swift 教程看完,再花点钱找个中高级 iOS 到咖啡馆手把手带你做一个简单项目,基本上你就能学会了。
    lujiaosama
        25
    lujiaosama  
       2022-05-05 11:26:15 +08:00
    @aeli 做个简单项目还需要中高级 iOS 面对面手把手,对于有代码基础的来说不是有手就行花点时间的事情么? 问点有深度的问题才需要吧. 面对面请教时间成本经济成本都很高.
    kkhaike
        26
    kkhaike  
       2022-05-05 12:41:11 +08:00
    @shawnliu03 完全辅导解惑性质也行
    wu67
        27
    wu67  
       2022-05-05 13:49:37 +08:00
    可以但没必要. 个人认为, 各平台近来对个人开发越来越不友好了(指上架等各种门槛), 兴趣使然的话, 还不如整前端套壳那种 app, 不考虑兼容的话直接跟着最新的教程走就行, 简单粗暴
    aeli
        28
    aeli  
       2022-05-05 15:46:31 +08:00
    @lujiaosama 他这个笔记 app ,明显不是他自我认知的简单项目。另外找中高级的当老师,是会带他知道正确的项目结构和少走弯路,主要还是要自学的。
    DogeFlyKite
        29
    DogeFlyKite  
       2022-05-05 18:57:06 +08:00
    @learningman 你好,有的(比如我这个二傻子
    learningman
        30
    learningman  
       2022-05-05 20:36:22 +08:00
    @DogeFlyKite 这还能绷得住不换安卓也是真爱
    jones2000
        31
    jones2000  
       2022-05-06 00:24:04 +08:00
    h5页面做一个, 外面加一个壳。
    luozic
        32
    luozic  
       2022-05-06 10:26:37 +08:00
    笔记软件非常复杂,即使不考虑同步问题。
    DogeFlyKite
        33
    DogeFlyKite  
       2022-05-09 20:08:42 +08:00
    @learningman 我是从安卓换的 iOS ,以前是也是安卓开发来着
    hdcola
        34
    hdcola  
       2022-05-16 06:11:30 +08:00
    @shawnliu03 耐心点,至少到 Learn code 1 和 2 整完,认真点两个半天就完事儿了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2642 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 14:43 PVG 22:43 LAX 07:43 JFK 10:43
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86