主页

本文发表于知乎:程序员如何看待iApp?


正文

知乎小透明一枚,不请自来,iApp圈子小就不匿了。

第一次在知乎回答问题,因我现阶段的认知水平有限,可能逻辑混乱语言枯燥,如果有什么错误的地方还望大家批评指正(当然也可能不会有什么人来看)。

虽然我还不算是个程序员,但作为一个iApp老玩家,我想我应该可以来回答一下这个问题。

先表明一下身份。

本人在校高中生,经历过小学、初中阶段,具有 '丰富' 的校园经验;个人博客博主,具备长达35天之久的建站经验;手机编程玩家,在iApp领域摸鱼多年。熟悉掌握Java、Python、HTML、CSS、PHP、JavaScript、C++等语言 的拼写。

好了,进入正题

要回答这个问题,首先要搞清楚iApp是什么。

我们看一下iApp官方对它的介绍:

这是一款神奇的软件,iApp是一款让你的手机展现光彩的应用。轻松的操作就可以设计出你想要的应用界面,你可以分享给你的朋友,传递你的快乐!
iApp是一款纯国产手机端开发工具,在你任何空余时间,打开iApp应用即可动手设计你的应用程序!
iApp采用了可视化设计界面,让你设计应用界面的时候一目了然,不用繁琐的看着代码伤脑筋了!
iApp不是一款简单的应用程序,它是创造应用的应用程序。
iApp只是一个手机安卓应用开发工具,它永远只会做一件事情,协助用户在手机上创建开发应用程序,不要带有色眼镜看待!
如果你没有iApp 你就真的没有iApp!

v2-d4f4cdda191c425d9705b64427aa7168_720w.jpg.png

iApp官网http://yougais.com/

其实简单的说,iApp就是一个利用手机开发软件并且支持可视化界面设计的App。

从它的名字可以看出这个应用的主打方向,即帮助用户简单快速的开发属于自己应用,iApp可以简单粗暴的翻译为“我的应用”,这同时也是它最初版本的名字。

iApp古老的界面
v2-a1586a2fb4adf231f842072b7422d7fe_720w.jpg

程序员如何看待iApp

这个吧,对于我来说还是比较难回答,毕竟我也不算是个程序员,只是在这方面有些兴趣的小白而已,我的圈子也没有什么真正认识的在职程序员,主要都是一些像我一样业于兴趣来玩玩的而已,多数时间都是在摸鱼,所以我来回答这个问题也算是勉强作答吧。

首先,不清楚没了解过的东西最好还是别随便乱说,不然可能会招来一些不必要的麻烦。iApp这个圈子还是算比较小的吧,知道这个软件的人可能也不多,从这个问题热度也就看得出来。那我就来说一说,我所知道的iAPP这个圈子的人对它的一些看法和我的看法吧,这个圈子也可以说是手机开发圈。

一方面看好iApp

为什么看好呢?这可能就需要分为两类人了。

第一类:编程小白,认为iApp简单易上手

这类人可能和我初中时有些类似,那时候一部手机几乎就是我的全部了,家里要不就是没电脑或是有电脑但也没办法长时间支配,但电影里那些无所不能的黑客总是吸引着我那渴望求知的好奇心(那时候的认识就是 黑客==程序员 || 程序员==黑客),甚至在心底里还有一个所谓的“黑客梦”想去实现,但没有电脑这些都是浮云啊。所以,手机编程这种东西的出现就极大的满足了我们这些手机党的精神需要。像我这种不太聪明的脑袋瓜子,也就依然比较追捧iApp了。

到这里可能会有人问“专门用于手机编程的App也是有挺多的啊,例如Android IDE (AIDE)、AndroidLua(Alua)之类的开发软件吗,为什么偏要选择iAPP呢?”

这就需要分析下iAPP到底有啥优点了。

1.代码简单明了

我先举个例子,假设我们要实现如下图所示的一个最简单的应用,弹出提示框

v2-2a408e6ab9d514b5ad0e240922edb6d3_720w.jpg

在AIDE中,实现这一效果的最简单的代码如下(不是很懂java有错误欢迎提出):

AlertDialog.Builder builder  = new Builder(MainActivity.this);
builder.setTitle("确认" ) ;
builder.setMessage("是否确认?" ) ; 
builder.setPositiveButton("是",null );
builder.setNegativeButton("否", null);
builder.show();  

在iApp中的代码:

utw("","确定","是否确定?","是","否",false,v)
{
}
else
{
}

通过对比同种效果的不同语言的代码就能明显看出,iApp代码的特点就是简化。简也就意味着大大降低了入门的门槛,学起来也就比较得心应手,因此这也是iAPP的用户群体主要是中小学生的其中一个原因。

因为iApp的代码采用面向过程式编程,其代码逻辑更符合一般人的思维方式,对于其他语言来说,也就显得比较通俗易懂了。

当然,因为iApp的代码过于简化也产生了许多弊端,这我们留到下面再说。

2.可视化的界面设计

在软件开发方面,最让个人开发者头疼的可能就是UI设计这方面了。“代码10分钟,UI数小时。”这句话可能一点也不为过。对于一些个人开发者来说,往往需要花费大量的时间和精力去构思和设计一个既要兼顾用户体验,又要符合一般的审美主流的界面,而这可能就是令他们最掉头发的其中一个方面了了。

可视化界面设计可以说是iApp的又一大亮点了吧。对于刚入门的新手来说,你只需要稍微明白这个控件是干嘛的,然后就是随心所欲的去添加控件,设计你想要的界面了。你只需要通过选中添加的控件用手指拖动它就能随意的把它放到我需要的位置(当然不建议这样做),这就跟做PPT似的,与电脑版的VB也有几分相似。

v2-a720367ae4b07ffc47bfe8909326c261_hd.webp.gif

3.方便的非编译调试窗口

(以下说法针对于v3及以下版本)

对于找bug这方面,最重要的就是调试输出了。对于那些每次运行都要编译打包的编程工具来说,寻找bug就显得非常漫长且烦躁了。每次改完bug后还要等待漫长的编译安装过程,更何况bug还不一定能够修好,对于程序员来说都有摔手机砸键盘了的冲动了,为此掉的头发恐怕也不少。

在iApp运行源码就可以直接运行,无需编译打包(目前的最新版本也支持打包调试)。iApp老玩家应该都知道,高效的利用iApp的调试输出工具对于bug排错非常重要。以我为例,每当我写完几行代码时,我就会习惯性的syso调试输出一下,看它能否达到我预期的输出效果,若不能则说明逻辑出现了问题然后就能及时纠错,而不用等到已经写了好几百行代码时运行才发现错误,要在几百行代码中找出一个错误考的就是你眼力了。

syso("hello world!")

544564.jpg


那时候对于我这个啥都不懂的小白来说,甚至还存在过认为个人是无法开发软件的这一荒唐想法,这可能与我过度神话软件开发这一行业有关吧,毕竟那时候我的认识水平也是有限的(当然现在也是)。所以,对于一个像我这样的小白来说,打开一个不知所以然的软件恐怕就是一脸懵逼的进去,一脸懵逼的出来,然后就是卸载。

就比如对于那时候啥都不懂也没有耐心的我来说,打开AIDE看到的都是一串串的英文,还有一些翻译的非常糟糕的陌生名词,然后左推敲又推敲也没高出个什么名堂出来,到最后就是失落而归,退出卸载一气呵成。

而iApp就有所不同,就算是个什么都不懂的小白,你一打开它就知道它是干什么的。创建一个应用,然后添加控件,只需要用手指拖动它(当然不赞成这样)就可以立马设计出一个自己想要的界面,这就跟做PPT似的,这根本不需要任何编程基础。设计完界面之后,我就可以立马打包它,然后就是看着我起的应用名字进入安装程序,不久之后就可以看到它出现在我的手机桌面上,打开它出现在我眼前的也正是我刚刚设计的界面,这对于一个什么都不懂小白来说,这是多么荣誉的时刻啊,而做到这一切却不需要任何的编程基础,这不正满足了像我这类人对编程的幻想吗。虽然还没有写任何的事件,但那确确实实是我设计的软件,把它发给同学,然后他们就是那种惊讶的眼神看着你,直呼“哇,黑客牛逼!”虽然这不是黑客,但这可把充满虚荣心的我给乐坏了。

第二类:编程大佬,iAPP是个启蒙工具

这类人一般现在已经是编程大佬了,因为iAPP,使自己在童年接触到了编程这个东西,iApp就是自己的启蒙工具,非常感谢它在自己童年留下浓重一笔,满足了自己对编程的幻想。虽然他们深知iAPP在许多方面都不那么尽如人意,但他们至少不会诋毁,而只是在自己不同知识水平所用的不同工具而已。

比如这位答主走上计算机专业的励志路程:
知乎:你为什么选择计算机专业?​

比如这位已经成为程序员的答主:
知乎:什么原因让你想当程序员?

比如这位从IApp学起最后掌握多种语言的答主:
知乎:同时掌握PS、 AI、 AE、 3ds Max,而且还会编程,这是种什么样的体验?​

另一方面不看好iApp甚至还带有一点鄙夷的目光

在某安上看到所谓的安卓开发鄙视链

v2-c551c69d5bf3d49ce843de2f23bbc9bc_720w.jpg

我觉得这所谓的鄙视链挺可笑的,就像上面某安网友说的“你真要是技术大佬,用啥工具都被人羡慕”。

不同的工具服务的是不同的人,不同的人需要的是不同的工具,难道因为你用的是扳手就可以鄙视用螺丝刀的人了吗,这都啥道理。

我觉得用在易语言上的回答同时也可以用在这里。

v2-52c3aec46ba59ca576a32cd78e412b5b_720w.jpg

但同时鄙视链之所以会存在,也是有其原因的,就像上面所说的:存在即有其合理性嘛。

那我就再说一说iAPP的缺点

1.代码过于简化,灵活性差

前面的优点也提到了,iApp因为它简化的代码,备受入门开发者门的欢迎。但因为它过简的代码同时也是它的一个缺点。

过于简化的代码也就意味着比较难实现一些较复杂的逻辑,而要实现一些复杂的效果往往需要调用其他语言来实现。

面向过程式编程同时也限制了代码实现的灵活性。

2.iApp开发的软件涉及灰色产业多

这似乎是一些小众语言都会面临的问题。例如中文编程易语言,因为很多人来利用易语言来开发一些游戏外挂、破解器之类的程序,所以受到各安全厂商的封杀,即使是你的程序完全的没有任何木马病毒、外挂程序之类的东西,安全卫士只要识别到了是易语言开发的软件就会采取一刀切的措施,全部进行报毒处理。当然iApp裕语言也不例外,也都有相同的遭遇。

这个安全卫士误报毒的问题在早期的iApp中尤为严重。因为早期的iApp版本没有没有对一些敏感代码的限制,导致锁机、后台自动发短信等流氓应用猖狂,当然这是早期的问题,现在也有较为的改善了。

在某iAPP交流群中能看到的一些较为常见的源码。

v2-c6bf6bbbc2b0d163978a908cc0a7ae35_720w.jpg
(某iApp交流群群文件)

从上面的源码文件可以看出,都是一些所谓的盗Q、钓鱼、辅助、引流、偷拍等之类的流氓源码。除此之外还有盗版影视观看软件、盗版音乐下载试听、涉黄、假壳诱导充值之类的游离于法律边缘的软件。当然也不排除也有许多合理合法的正规软件,例如我开发的小A教程。但与像我这样的正规软件相比,很明显,处于法律边缘的软件都是来钱比较快的,也是一个暴利行业,自然做的人也就多了。

对于上述这样的软件,安全卫士最简单的做法就是一刀切了。所以使用iApp开发的软件因为涉及的灰色产业多,我的正规软件也被误报毒也就是个难搞的问题了。当然,你有钱就会不一样了。

v2-d3c7d72afa427fdbc4bbe077858de58e_720w.jpg
我开发的小A教程

3.代码安全性差,易被逆向

iApp最引人注目的可能就是软件源码的安全性问题了,被误报毒问题可能还不大,但自己辛辛苦苦开发的软件就轻易的被别人完整的逆向出源码了,花了我几个月的时间来开发这个软件,被他用了几秒钟就变成他的了,真的想想都气。

这也是导致开发者门弃坑iApp的最主要原因。当然,你要是充钱就比较容易解决这个问题。

结尾

一切东西存在皆有其合理性。iApp之所以存在是因为有需要它的人,如果一个东西真的没用,那它为什么会存在。

但最后我还有多说一句,iApp至多只能成为你IT之路的其中一个启蒙工具,不要抱太大期望,也不要太失望。

iApp 手机编程 知乎

版权属于:Asnull
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
0
查看目录

目录

来自 《如何看待iApp/裕语言》
评论

  1. 评论头像
    2021-02-14 回复

    大大,你的小A教程链接可以发给我吗

    1. 评论头像
      @梦落凡尘 小A 作者
      2021-02-14 回复

      整套源码已经开源了,可以加群下载

    2. 评论头像
      @梦落凡尘 小A 作者
      2021-02-14 回复

      可以加一下小A教程技术交流群:615826588

    3. 评论头像
      @梦落凡尘 小A 作者
      2021-02-14 回复

      抱歉了,小A教程目前已经停止服务了。快高考了,出了点问题就没再继续维护了

      1. 评论头像
        2021-02-14 回复

        好吧,但是还是很怀念之前的小A教程,我之前注册的时候还没有应用托管之类的,我三年前就用过小A了,对我iApp的路上帮助是非常大的

  2. 评论头像
    2020-08-02 回复

    AlertDialog 需要 create() 后才能 show(),这里很多人都会犯错,我第一次也是。(builder = new AlertDialog.Builder(...))

    1. 评论头像
      @权那他 小A 作者
      2020-08-02 回复

      哈哈,大佬竟然来逛我的博客了

  3. 评论头像
    1. 评论头像
      @周泽雅我爱你-iapp小墨 小A 作者
      2020-07-05 回复

      顺便去知乎3连下呗

  4. 评论头像
    2020-07-05 回复

    这可以理解为,可视化工具为用户创造自己的理想产品,
    但是对于coder来说,可能他们更多喜欢的是要自己用每一行code去定制。

    1. 评论头像
      @Ada 小A 作者
      2020-07-05 回复

      有许多现成的轮子可用也是挺好的

  5. 评论头像
    2020-06-07 回复

    说起来我以前说过鄙视是普遍的
    iapp这种本身就存在一定局限性
    鄙视是可以被理解的 而可怕的是这款开发者放任下去
    就像易语言 而不积极做出改变 或许因为代码太庞大 又或许本身目标就是为了钱
    关于易语言被鄙视:https://blog.yuemoe.cn/408.html

    1. 评论头像
      @乔千 小A 作者
      2020-06-07 回复

      是的,与易语音有许多相似之处,只不过一个是电脑编程一个是手机编程。
      最近iApp也推出了中文编程,但旧问题却不去解决。

博主很懒,啥都没有
43 文章数
5,310 评论量
5 分类数
48 页面数
已在风雨中度过 54年116天20小时41分