V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lht91225
V2EX  ›  Android

请教 App 自动生成平台/工具的实现方法

  •  
  •   lht91225 · 2016-08-22 15:35:24 +08:00 · 8869 次点击
    这是一个创建于 3026 天前的主题,其中的信息可能已经有所发展或是发生改变。

    没有找到相关的技术文章,可能是我没找对关键词?

    想了解类似于建站工具的,用户拖拽控件编辑数据源自定义生成 App 的平台 /工具的实现方法。

    目前能想到的是提供几套模板,用户填数据,最后调用 gradle 打包代码。但貌似其中还是有一些坑要踩,自定义的话是强行塞代码?数据源如何与界面结合,例如 Adapter 代码自动生成吗?求相关的技术文章,或者技术路线的指导。

    这里列举了一些类似平台,貌似大多数生成的 app 还是通过内嵌 web 页,排名第一的平台能生成 native 。

    9 条回复    2016-08-22 18:18:25 +08:00
    alex321
        1
    alex321  
       2016-08-22 15:42:16 +08:00
    Native 也都多数是 hybrid 的吧。。
    猜想应该是有各种场景模板来进行配合的。用创建一个 app 的时候,选择某个样式与模板,然后自定义其中的某些基本静态素材,比如 logo 、 banner 和 background 之类的。创建完,就按照用户提交的这份配置进行打包处理了,完成后就可以给出下载地址什么的了。
    lht91225
        2
    lht91225  
    OP
       2016-08-22 15:57:24 +08:00
    @alex321 没有太了解过 hybrid ,是不是就是 native 中套 web 页面。正文给的链接里有个这样的平台[http://www.dingdone.com/],看了一下它列出来的安利,部分都没有 web 的痕迹啊。这是怎么办到的?基本静态素材好办,数据源、数据绑定之类的怎么自动生成呢?
    dphdjy
        3
    dphdjy  
       2016-08-22 16:05:30 +08:00
    基本都是内容展示的应用,这类应用通过模块化和数据分离,可以抽象出适用的结构,或者完成生成器。

    可以逆向看看

    至于 web 简单多了
    alex321
        4
    alex321  
       2016-08-22 16:14:37 +08:00
    @lht91225 Hybrid App 是 Native App 和 Web App 混合的。简单来说就是在 App 里面封装了一套页面模板,然后请求数据什么的都是在 App 打开后按照页面使用需求通过 API 调用的,这部分你可以理解为就是 Web App 。由于纯 Web 在执行交互上的体验并不太好,并且能够使用到的手机硬件功能有限, App 会同时打包 Web App 和手机硬件间调用和通信的模块或者组件,这部分经常以 js-bridge 的形式出现,使 Hybrid App 能够做到 Native App 中的交互效果和调用手机硬件方面的操作了。
    当然,现在的 hybrid App 开发框架会越来越多地把 Native 的功能做到 js-bridge 这泪模块或组件中去了。这方便常见的有 Phonegap 、 Dcloud 的 html5+ 等等。
    我目前公司正在使用 html5+。
    lht91225
        5
    lht91225  
    OP
       2016-08-22 17:07:24 +08:00
    @dphdjy 还是想以 native 为主,因此不考虑 web ,正在逆向看代码,谢谢回复~

    @alex321 你说的这个方案我理解了,我在做的东西需求比较简单,还是想用 native 做,可能部分嵌套 web 页面。举个例子,做一个通讯录,通讯录列表用 native ,点击进入个人详情用 web 。类似这样,列表部分还是完全 native ,数据在服务器,这一块的数据绑定还有些困惑,我调研看看。
    fjzjk
        6
    fjzjk  
       2016-08-22 17:20:54 +08:00
    你可以看看叮当网。看看别人那种
    lht91225
        7
    lht91225  
    OP
       2016-08-22 17:23:00 +08:00
    @fjzjk 是的,我就是看到了它,想了解它是怎么实现的
    fjzjk
        8
    fjzjk  
       2016-08-22 17:36:51 +08:00
    @lht91225 那就用他做几个 app ,自己解包看看?
    lht91225
        9
    lht91225  
    OP
       2016-08-22 18:18:25 +08:00
    @fjzjk 嗯嗯 我就这么想的 楼上有位也提醒了我
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6012 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 02:12 · PVG 10:12 · LAX 18:12 · JFK 21:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.