V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
LxExExl
V2EX  ›  问与答

迫于接新项目,有没有通用的 app 开发书籍推荐

  •  
  •   LxExExl · 2021-02-09 06:26:49 +08:00 · 1106 次点击
    这是一个创建于 1143 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题 最近要接一个 Android 项目从隔壁组 本来想着面向 StackOverFlow 编程 东拼西凑搞定就算了

    后来估计了一下大概要三四周,本着不浪费时间的原则,想顺便系统化一下 Android 或者说 APP 开发的知识

    楼主写过各种语言,但基本都是 Server 端的业务逻辑,没在前端和 app 端干过。

    希望书中有类似:

    • 要想做个表格,要先画 table,然后设置监听 actionListener
    • query 太慢了要做 pagination
    • 做登录的时候后端密码不存原文,要加盐

    之类的“best practice in general"

    不太需要类似

    • 要加一个表格,可以考虑使用<table>, <tr>标签
    • 要获取数据,那么需要建立一个 function,带着某个 annotation,然后和 Server 连起来
    • 验证密码的时候使用 SHA256 这个 hash function,然后先 import,再 new 一个实例,最后 call isEqual() 比较一下

    之类的具体 /api facing 的东西

    对于 UI 组件 我会去看谷歌的官方 doc

    对于通用的 App 开发知识,v 友们有推荐的书吗?

    10 条回复    2021-02-09 14:02:51 +08:00
    Ariver
        1
    Ariver  
       2021-02-09 07:08:30 +08:00 via iPhone
    我也想找一本类似这样的
    Elethom
        2
    Elethom  
       2021-02-09 07:30:51 +08:00 via iPhone
    每次刚接触新东西的时候也想要有这样的资料,后来发现还是多看成熟项目的源码择善而从最好,因为根本没人写这样的资料。
    xiangyuecn
        3
    xiangyuecn  
       2021-02-09 08:45:44 +08:00
    你这个想法是把一本能写 200 页的书 活生生变成了 10 页🙄
    HeapOverflow
        4
    HeapOverflow  
       2021-02-09 08:48:01 +08:00
    如果是全新的项目,用 flutter 可能比较简单
    WangHL
        5
    WangHL  
       2021-02-09 09:08:34 +08:00
    UI 绘制和事件监听可以参考官方文档中核心主题部分 [https://developer.android.google.cn/guide] ;最佳实践可以参考阿里巴巴 Android 开发手册 [https://edu.aliyun.com/course/813] ,概述中有 pdf 下载链接,遵守规范中的 [强制] 可以避免很多坑;
    Renco
        6
    Renco  
       2021-02-09 09:24:36 +08:00
    flutter +1
    MozzieW
        7
    MozzieW  
       2021-02-09 09:40:16 +08:00
    我本想说没有这样的书, 然后想了自己看的书, 有的话应该是<App 研发录:架构设计、Crash 分析和竞品技术分析>(从订单历史找的). 但发现可能也不太合适, 原因和我觉得没有这种书一样: 落后.
    Android 现在是一个既成熟又年轻的状态. 你可以用过去十年的技术和经验继续构建, 但是这些技术都在慢慢被淘汰. 就连 Java, 逐渐都是 Kotlin.
    鉴于题主是后端的, 我觉得拿网络处理来做说明比较容易理解. UI 的开发正常只有一个线程能更新 UI(一般叫主线程, 具体的细节差异忽略). Android 一开始是可以在主线程请求网络的, 这样就导致网络请求时整个页面都停止响应了. 所以网络请求被禁止在主线程调用. 然后就出现了网络请求的封装. 大概带你是这样的:
    ~~~
    New Thread(Runnable(){
    MozzieW
        8
    MozzieW  
       2021-02-09 09:54:51 +08:00
    没打完发出去了...
    我本想说没有这样的书, 然后想了自己看的书, 有的话应该是<App 研发录:架构设计、Crash 分析和竞品技术分析>(从订单历史找的). 但发现可能也不太合适, 原因和我觉得没有这种书一样: 落后.
    Android 现在是一个既成熟又年轻的状态. 你可以用过去十年的技术和经验继续构建, 但是这些技术都在慢慢被淘汰. 就连 Java, 逐渐都是 Kotlin.
    鉴于题主是后端的, 我觉得拿网络处理来做说明比较容易理解. UI 的开发正常只有一个线程能更新 UI(一般叫主线程, 具体的细节差异忽略). Android 一开始是可以在主线程请求网络的, 这样就导致网络请求时整个页面都停止响应了. 所以网络请求被禁止在主线程调用. 然后就出现了网络请求的封装. 大概带你是这样的:
    ~~~
    New Thread(Runnable(){
    result = 网络请求()
    handler.post(result);// 返回主线程继续
    });
    ~~~
    这种封装第一个问题是每次请求都要新建线程, 很简单, 用线程池解决. 第二个是里面的 handler 持有了当前页面指针, 可能导致内存泄漏. 所以当时很多文章也介绍怎么避免这个问题(handler 不仅仅网络使用, 所以问题还是挺普遍的).
    这种经验还有用吗? 如果你用上现在的 Retrofit 库, 你发现这些问题都没有了, 而且用起来还贼简单. 真有人写书还给你介绍这个, 估计你都觉得作者骗钱的. 但是的确还有些新人抄代码抄到这种东西. 可能我还觉得自己年轻, 觉得这种东西也是不久前才看过. 比如我上面说的书, 里面说 ListView 也是被淘汰了, 现在就算你用 RecyclerView 不自己写一个 BaseAdapter 都不好意思给人看.
    感觉都是自言自语, 说个还是自己觉得有用的建议: 找一个还在维护的高仿项目, 看一下网络请求处理, 设计(什么 MVVM, MVP 的随缘), 经典的 iOS 底部 tab 样式实现, 列表页面, 详情页面实现就可以了. 如果了要做的功能, 直接搜'高仿 xxx',基本出来的就是最佳实践. 毕竟万一运气不好, 搭环境估计都得花好几天.
    LxExExl
        9
    LxExExl  
    OP
       2021-02-09 10:18:02 +08:00
    @xiangyuecn #3 200 页的也可以啊 hhh


    @HeapOverflow #4
    @Renco #6
    工作方面这个项目看看已有代码,网上找找例子几天就能弄完了。用新语言新框架不现实,而且舍近求远,有点浪费时间 (目标是短平快做完需求,回到后端的主线任务上) 工期两周,我觉得不到一周就能做完了,想剩下的时间趁机买买书,报销一下,然后学点以后不管什么编程语言都能用到的知识。



    @WangHL #5 谷歌的文档一直在看 对添砖加瓦足够了
    阿里那个更像是针对 Android 开发的一些语言规范,对我来说”太深了”,近期和长期都用不上。


    我是想找一本类似“clean code”的书,而不是“c++ premier",或者”c 语言程序设计现代方法"
    来了解一下”现在想快速开发一个手机 App,语言无关的情况下,分几个模块,有哪些需要注意的,和编程语言无关“


    @MozzieW #8 对 这种经验确实只适合面试挑刺了。好像这种书确实不好写,写完了可能就被新技术覆盖了,也许找 medium 之类的博客看看更好,只是很难找到系统的
    zxCoder
        10
    zxCoder  
       2021-02-09 14:02:51 +08:00
    没有
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   997 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:02 · PVG 04:02 · LAX 13:02 · JFK 16:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.