V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Henrybsbhp
V2EX  ›  分享创造

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

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

    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

    =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   ·   实用小工具   ·   4970 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 07:02 · PVG 15:02 · LAX 23:02 · JFK 02:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.