我的第一个 iOS App 上架了!一款用来阅读 V2EX 主题的客户端。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Henrybsbhp
V2EX    分享创造

我的第一个 iOS App 上架了!一款用来阅读 V2EX 主题的客户端。

  •  
  •   Henybsbhp 2015-09-26 16:53:24 +08:00 6542 次点击
    这是一个创建于 3673 天前的主题,其中的信息可能已经有所发展或是发生改变。

    App Store 下载链接

    https://itunes.apple.com/us/app/v2ex-du/id1039894419?mt=8

    App 简介:

    最初做这款 App 是因为实在不喜欢用网页的形式在手机上来查看 V2EX 上的最新主题,就想着做一款 App 来在客户端上按照自己喜欢的排版和界面来阅览。虽然 App Store 有不少 V2EX 的客户端,其中不乏优秀的,但是界面上还没有自己喜欢的,所以还是想着做一个出来,然后就花了自己两个多月时间开发了第一个版本(惭愧,本人零基础折腾,所以比较费时间)。个人觉得目前的界面已经比较适合作为一款客户端来阅读了。

    支持浏览主题,查看主题内容,查看各位对个主题的回复等等操作。

    界面如下:








    目前的功能:

    还仅支持阅读各分类的主题内容,暂不支持各节点的查看和登陆,发帖,回复功能。这些功能以后随着技术的提高会加入。

    现有主要交互功能如下:

    • 主题列表界面向右滑动即可呼出分类列表。
    • 支持系统原生 Action 机制,比如分享拷贝主题链接等等。
    • 目前在 iPhone 6s/6s Plus 设备上可以使用 3D Touch 预览链接以及在 Safari 中打开链接。

    关于自己做这款 App

    其实去年的时候就已经想学习 iOS 开发了,但是当时由于一些原因,还没学多长时间就放弃了。今年三月份又想再继续学下去,以前自己学的那些早已忘得一干二净,所以算是重头拾起吧。自己大学学的是英语专业,也没接学过其他的编程语言,零基础学起。开始的时候是找书来学,在网上找来找去发现 The Big Nerd Ranch 的两本书籍评价不错: Objective-C Programming: The Big Nerd Ranch Guide, (2nd Edition) (Big Nerd Ranch Guides) 和 iOS Programming: The Big Nerd Ranch Guide (4th Edition) (Big Nerd Ranch Guides)。然后去淘宝和亚马逊看了一下售价,一本书差不多 200 块钱当时,觉得略贵,随即上网下了 PDF 然后找还在上学的女朋友帮忙打印了出来,花了 100 块钱。好吧,有点惭愧,以后还是买下这两本书支持正版吧。花了大半个月看完了第一本 Objective-C Programming ,当时觉得云里雾里,太多的不明白,课后的作业差不多做出了一半,当时就怀疑自己看不看得下去啊。看完第一本,就马上着手看第二本 iOS Programming 了,好家伙,觉得这本书更难,什么 Block 啊, Core Data 看着好绕,但是好在书里面的介绍比较详尽,硬是一遍遍看总算把大部分内容看懂了。看完这两本书已经花了自己两个月的时间了,觉得自己可以做一个项目来练手了,自己当时没有好点子,但总不能耗着不做吧,想到还是做款 V2EX 的客户端吧,反正自己不喜欢用浏览器上 V2EX 。

    之后就马上着手练起来了,用 Storyboard 做好了一个大概的界面,虽然改了又改,倒也算是一帆风顺。当自己第一次把论坛的主题从 Simulator 中刷出来的那一刻把自己高兴坏了。之后的开发工作碰壁的太多,好在都一一解决了,比如 V2EX 官方给出的 API 太少,少到基本的使用都觉得蛋疼,然后研究了半天最终决定用 API + HTML 解析的方式在实现内容的加载,花了一些时间,终于解决了这个部分。之间还有一些自动算高,高度缓存, HTML 内容的呈现,使用第三方库等等,大大小小也折腾了不少时间。直到自己觉得第一版差不多可以上架的那时候才发现自己开发这个 App 已经两个多月了。哈哈,由于八月份女朋友放假回我这,陪她玩了一个来月,所以这时候都九月份了。

    在做这款 App 的时候由于身边没有做开发工作的朋友,更没有一起学 iOS 的。所以遇到问题大部分都是通过 Google 和 StackOverFlow 来解决,通过这个了解到用中文关键词来搜索问题的不靠谱性,反正我的所有问题解决都还是用英文搜索解决了。当然了,在这期间,通过 StackOverFlow 认识到了 Bannings 这位开发者,他帮助我解决了不少小问题。还有也找了图拉鼎同学来帮忙,也是收获不少,开发者账户也是找他帮忙付款申请的,哈哈,再次感谢两位!

    申请到开发者账户,就马上上传了自己的 Build ,没想到过程竟是如此顺利,一次就能通过审核,并在昨天凌晨收到 iTunes Connect 的邮件说已经上架了,再一次欣喜若狂,然后也是昨天,自己订的 iPhone 6s 就到了,这次买了个 128GB 版,把自己 iPod classic 的音乐也给弄进去了,不用担心空间不足了,可谓双喜临门,哈哈。

    之后自己会再次努力提高自己的技术水平,完善目前的项目,学学新的知识,毕竟现在是全职在家学习开发,舍弃了原先工作。并且希望下半年能够在杭州找到一份 iOS 开发工作吧,哪怕是实习也行。不知道凭着自己这个小项目能否让自己成功找到工作。也希望大家能给点宝贵的意见,谢谢各位。

    63 条回复    2015-11-11 18:38:31 +08:00
    a154312237
        1
    a154312237  
       2015-09-26 16:57:53 +08:00 via iPhone   1
    已经在用了 很流畅 期待登录功能上线
    kiwis
        2
    kiwis  
       2015-09-26 16:59:41 +08:00   1
    (=ω) 加油啦
    aliuwr
        3
    aliuwr  
       2015-09-26 17:04:37 +08:00   2
    V2 提供的 API 实在是没法用,我做的客户端全部是用 jsoup 来解析 HTML 。
    kiwis
        4
    kiwis  
       2015-09-26 17:11:14 +08:00
    div class="reply_content">
    =w= 用着还是挺流畅的
    Henrybsbhp
        5
    Henrybsbhp  
    OP
       2015-09-26 17:11:52 +08:00 via iPhone
    @aliuwr 我用的 Hpple 解析 HTML 。
    rvw
        6
    rvw  
       2015-09-26 17:36:45 +08:00   1
    文章页是 web 还是?
    Henrybsbhp
        7
    Henrybsbhp  
    OP
       2015-09-26 17:46:10 +08:00 via iPhone
    @rvw UITextView
    liangguan5
        8
    liangguan5  
       2015-09-26 17:46:17 +08:00 via iPhone   1
    谢谢分享经历,我斗志也来了,哈哈
    rvw
        9
    rvw  
       2015-09-26 17:47:11 +08:00
    @Henrybsbhp i Know 也想练练手但是解析头疼
    LINAICAI
        10
    LINAICAI  
       2015-09-26 17:54:30 +08:00   1
    功能略少
    Henrybsbhp
        11
    Henrybsbhp  
    OP
       2015-09-26 18:10:40 +08:00
    @LINAICAI 功能的确很少,哈哈,但是我会努力看看能不能增加登陆回复啥的。
    Henrybsbhp
        12
    Henrybsbhp  
    OP
       2015-09-26 18:12:32 +08:00
    @liangguan5 加油!
    Henrybsbhp
        13
    Henrybsbhp  
    OP
       2015-09-26 18:21:44 +08:00
    @rvw 用第三方库来解析,还是挺简单的,我用的 Hpple
    zonghua
        14
    zonghua  
       2015-09-26 18:32:58 +08:00   1
    V2EX 的移动端页面做得很不错。
    Henrybsbhp
        15
    Henrybsbhp  
    OP
       2015-09-26 18:37:05 +08:00
    @zonghua 只是不喜欢用手机来用网页看东西,除了搜索,哈哈。
    chaleaoch
        16
    chaleaoch  
       2015-09-26 19:21:45 +08:00   1
    弱弱的支持一下.
    chmlai
        17
    chmlai  
       2015-09-26 19:44:16 +08:00   1
    解析 html 的? 那不会比网页快啊?
    loveuqian
        18
    loveuqian  
       2015-09-26 19:45:28 +08:00 via iPhone   1
    开源嘛?
    hiroya
        19
    hiroya  
       2015-09-26 20:47:09 +08:00 via iPad   1
    好给力!不能回复有点遗憾…
    Henrybsbhp
        20
    Henrybsbhp  
    OP
       2015-09-26 20:58:21 +08:00
    @loveuqian 后面会开源的。
    Henrybsbhp
        21
    Henrybsbhp  
    OP
       2015-09-26 20:58:39 +08:00
    @hiroya 我努力加入登陆回复功能。
    wd
        22
    wd  
       2015-09-26 21:06:17 +08:00 via iPhone   1
    加油
    看截图好像支持 markdown ?
    Henrybsbhp
        23
    Henrybsbhp  
    OP
       2015-09-26 21:07:46 +08:00
    @chmlai 速度上应该和网页差不多吧,具体我没对比过,嘿嘿。
    Henrybsbhp
        24
    Henrybsbhp  
    OP
       2015-09-26 21:08:22 +08:00
    @wd Yep ,但有点不完美,以后看看能不能修复一下。
    wd
        25
    wd  
       2015-09-26 21:18:38 +08:00 via iPhone
    wd
        26
    wd  
       2015-09-26 21:19:28 +08:00 via iPhone
    @Henrybsbhp 还不支持登陆么?那就还得等等才能回复是不
    zerh925
        27
    zerh925  
       2015-09-26 21:55:45 +08:00 via iPhone
    支持!楼主加油!
    frye
        28
    frye  
       2015-09-26 22:05:25 +08:00
    楼猪可以开源么?
    Henrybsbhp
        29
    Henrybsbhp  
    OP
       2015-09-26 22:11:52 +08:00
    @wd 很抱歉,目前是不支持的,因为官方没有登陆 API 嘛,所以就只有 HTTP Request 来实现了,目前我还没掌握这种方法,我也在研究中,有成果后会加入的。
    Henrybsbhp
        30
    Henrybsbhp  
    OP
       2015-09-26 22:12:31 +08:00
    @frye 可以,可是源代码需要重新理一下,等以后会开源的。
    Henrybsbhp
        31
    Henrybsbhp  
    OP
       2015-09-26 22:12:44 +08:00
    @zerh925 谢谢!
    badcode
        32
    badcode  
       2015-09-26 22:19:49 +08:00
    https://v2ex.com/p/7v9TEc53 楼主在找这个吗?
    djyde
        33
    djyde  
       2015-09-26 22:51:10 +08:00
    @aliuwr
    @badcode

    我在之前总结过一份 V2EX API https://github.com/djyde/V2EX-API
    djyde
        34
    djyde  
       2015-09-26 22:52:22 +08:00
    @aliuwr 不知道你所说的没法用是什么意思? https://github.com/djyde/V2HOT-Plus 这是我用 API 写的 Hot topic Android client
    magstse
        35
    magstse  
       2015-09-26 23:01:34 +08:00
    做这样的 app 属于 然并卵 的一件事
    KillPaul
        36
    KillPaul  
       2015-09-26 23:26:16 +08:00
    @magstse 难道你一开始就靠自学做出了个 有卵用 的东西么。。
    mornlight
        37
    mornlight  
       2015-09-27 00:01:02 +08:00
    不错不错。
    下个版本考虑支持登录吧。
    Henrybsbhp
        38
    Henrybsbhp  
    OP
       2015-09-27 00:19:25 +08:00
    @badcode 我看过这个,但是内容可显示的貌似太少。
    Henrybsbhp
        39
    Henrybsbhp  
    OP
       2015-09-27 00:20:48 +08:00
    @djyde 你的我有参考,不过只用了一部分。有的东西还是 HTML 解析才能搞定了。也很感谢你的总结!
    Henrybsbhp
        40
    Henrybsbhp  
    OP
       2015-09-27 00:24:28 +08:00
    @magstse 就像你说所以的,的确对大部分人可能「然并卵」,但是应该还是有些喜欢潜水,刷最新内容的 V 友会用用吧。
    Henrybsbhp
        41
    Henrybsbhp  
    OP
       2015-09-27 00:25:14 +08:00
    @KillPaul 不好意思,上面打错的,第一句是「就像你所说的」。
    Henrybsbhp
        42
    Henrybsbhp  
    OP
       2015-09-27 00:25:44 +08:00
    @magstse 不好意思,上面打错的,第一句是「就像你所说的」。

    额,楼上回复错了。
    Henrybsbhp
        43
    Henrybsbhp  
    OP
       2015-09-27 00:26:05 +08:00
    @mornlight 正在研究。
    tylr
        44
    tylr  
       2015-09-27 00:33:42 +08:00
    同专业握手 :D
    Henrybsbhp
        45
    Henrybsbhp  
    OP
       2015-09-27 00:41:23 +08:00
    @tylr 我看过你的那篇 From zero to hero !很赞!
    h52
        46
    h52  
       2015-09-27 01:53:24 +08:00
    已下载试玩,很赞,给我这个 iOS 初学者打了一针鸡血。
    Crabby
        47
    Crabby  
       2015-09-27 08:43:32 +08:00
    楼主真的太赞了,一定要加油。个人的学习经历很振奋人心~
    我该向楼主好好学习
    tylr
        48
    tylr  
       2015-09-27 10:59:06 +08:00
    @Henrybsbhp 抱拳~由于工作中接触 JS 比较多,我也顺带开始学习 React 了,希望能重新开始利用空闲时间做做 APP ,怀念那种创造的赶脚~祝节日快乐~
    Henrybsbhp
        49
    Henrybsbhp  
    OP
       2015-09-27 12:45:07 +08:00 via iPhone
    @tylr 节日快乐!
    Henrybsbhp
        50
    Henrybsbhp  
    OP
       2015-09-27 12:45:27 +08:00 via iPhone
    @Crabby 多谢,祝节日快乐!
    Henrybsbhp
        51
    Henrybsbhp  
    OP
       2015-09-27 12:45:50 +08:00 via iPhone
    @h52 一起加油!
    hptcyhj
        52
    hptcyhj  
       2015-09-27 14:16:49 +08:00
    楼主厉害,希望自己也能早点写出这样的 app 。(然而我还在学习 c++)
    Francost
        53
    Francost  
       2015-09-27 14:33:00 +08:00
    楼主大赞啊,希望我也能写出 app 啊
    Henrybsbhp
        54
    Henrybsbhp  
    OP
       2015-09-27 15:54:39 +08:00
    @hptcyhj
    @Francost

    一起加油!
    fhefh
        55
    fhefh  
       2015-09-27 16:10:40 +08:00
    mark it ~~~
    sangmong
        56
    sangmong  
       2015-09-27 22:01:31 +08:00
    我早就想写一个啦,但是一直没有时间...居然被楼主捷足先登了哈哈
    Henrybsbhp
        57
    Henrybsbhp  
    OP
       2015-09-27 23:41:19 +08:00
    @sangmong 并非捷足先登,已经有不少前辈做了 V2EX 的客户端啦。
    JimGreen
        58
    JimGreen  
       2015-09-27 23:50:02 +08:00
    O(∩_∩)O 谢谢!
    XianZaiZhuCe
        59
    XianZaiZhuCe  
       2015-09-28 07:29:02 +08:00 via Android
    零基础 ios
    ,两个月整出了一个 app ?花了多少工时?
    Henrybsbhp
        60
    Henrybsbhp  
    OP
       2015-09-28 11:23:34 +08:00 via iPhone
    @XianZaiZhuCe 450h+ 的,自己比较慢。有时一个问题困扰两星期。
    rvw
        61
    rvw  
       2015-09-28 17:20:22 +08:00
    怎么不能加载下一页呢
    Henrybsbhp
        62
    Henrybsbhp  
    OP
       2015-09-28 21:17:11 +08:00 via iPhone
    @rvw 因为是浏览的分类内容,所以没有下一页内容。以后加入节点的话就有了。
    gejigeji
        63
    gejigeji  
       2015-11-11 18:38:31 +08:00
    不错 牛逼
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     6386 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 02:30 PVG 10:30 LAX 19:30 JFK 22:30
    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