herozem
V2EX  ›  Android

android 编程有偷懒的方法么?

  •  
  •   herozem · May 14, 2015 · 16811 views
    This topic created in 4194 days ago, the information mentioned may be changed or developed.

    虽然我是新手, 需要熟悉android各种属性, 但是android也太繁杂了吧,比如xml:

    一大堆的android前缀, 要不是多亏了IDEA简直累到死。。。

    还有java里的, 比如List<Map<String, String>> child1 = new ArrayList<Map<String, String>>(); 哇卡卡, 前面写了一遍后面又要写一遍。

    算了, 吐槽完毕。

    所以:请问大家, android编程有类似groovy语法之类的偷懒写法(或者说工具?)吗?或者一切可以提高编程效率的方法

    31 replies  •  2016-12-25 12:24:09 +08:00
    WildCat
    WildCat
    May 14, 2015 via iPhone
    1
    传统的静态语言不都这样子?
    Groovy 欢迎你
    herozem
    herozem
    OP
    May 14, 2015
    2
    @WildCat 唉, 写的想哭
    Gonster
    Gonster
    May 14, 2015
    3
    jdk的话 1.7 以后 new 后面模板可以不用再写一遍了。。。Android就不清楚了
    scarlex
    scarlex
    May 14, 2015
    4
    不知道楼主有没写过 web 前端,写过的话再写 android 界面时感觉应该差不多吧。
    herozem
    herozem
    OP
    May 15, 2015 via Android
    5
    @Gonster 搞不懂之前的为啥要这样。
    @scarlex 没玩过web。为何人机交互都这么麻烦T_T
    reeco
    reeco
    May 15, 2015 via iPhone
    6
    用好idea
    scarlex
    scarlex
    May 15, 2015
    7
    @herozem 做界面做交互的都这样拉,定义组件结构,定义样式,事件绑定。习惯下就好了。
    aaronmix
    aaronmix
    May 15, 2015
    8
    kotlin
    GhostFlying
    GhostFlying
    May 15, 2015 via Android
    9
    Idea 已经简单很多了。。想想以前 Eclipse 的日子,不堪回首
    zhouquanbest
    zhouquanbest
    May 15, 2015 via Android
    10
    lambda+rxjava
    silvernoo
    silvernoo
    May 15, 2015
    11
    scala
    mthli
    mthli
    May 15, 2015 via Android❤️3
    12
    puncsky
    puncsky
    May 15, 2015
    13
    Java 7 开始有 diamond operator

    List<Map<String, String>> child1 = new ArrayList<Map<String, String>>();

    就变成了

    List<Map<String, String>> child1 = new ArrayList<>();

    稍微好一点儿。。
    herozem
    herozem
    OP
    May 15, 2015
    14
    @GhostFlying eclipse用的我想哭


    @puncsky 嗯, 只能说好了一点点


    @mthli 谢谢, 干货


    @silvernoo 表示没学过scala, 就算scala写起来应该也不轻松吧(猜
    @aaronmix 又是jetbrains ->_->
    learnshare
    learnshare
    May 15, 2015
    15
    IDE 的代码片段不是用来摆设的
    zhea55
    zhea55
    May 15, 2015
    17
    verticalLayout {
    val name = editText()
    button("Say Hello") {
    onClick { toast("Hello, ${name.text}!") }
    }
    }

    看起来很舒服,不过这个东西效率怎样,还不清楚。。


    https://github.com/JetBrains/anko
    herozem
    herozem
    OP
    May 15, 2015
    18
    @learnshare 只能说好一点点, 自动补全也不是很智能的


    @zhea55 很多人推荐jetbrains的anko :)

    @finian 这个还没看过呢, 好像很强大, 在实际工程上有应用吗?请问
    jaminzzhang
    jaminzzhang
    May 15, 2015
    19
    呃,为何不用Android Studio?也是IntelliJ,现在已支持SDK7。写了iOS再写Android,觉得真不算什么。哦,除了NullPointerException
    iv2ex
    iv2ex
    May 15, 2015
    20
    Android Studio的提示很好用 不需要你写完整的字段名 写一个字段名中间几个字母都可以
    allan1st
    allan1st
    May 15, 2015❤️1
    21
    我的偷懒方法汇总:
    * ButterKnife 做 View Injection, OnClick 等
    * RxJava 做 Async,配合 leakcanary 检查内存泄露
    * Retro-lambda 用 JAVA 8 的 lambda
    * Stetho debug 网络请求
    * 这个比较 Dirty: Realm 在主线程上 query
    * 终极偷懒项:最低版本设置到 19 或者 21

    其实以上第2点第5点坑比较多。。
    herozem
    herozem
    OP
    May 15, 2015
    22
    @jaminzzhang
    @atearsan 嗯, 刚开始看书的时候用eclipse, 后来觉得不行, 太累, 就换到了idea


    @allan1st 感谢分享, 表示上面的一个都没用过
    Gem
    Gem
    May 15, 2015
    23
    写着虽然麻烦,但是好处是每一步都很清楚,也挺好的。
    StevenTong
    StevenTong
    May 15, 2015
    24
    @allan1st 多谢分享 mark 下次一个一个看
    Jabin
    Jabin
    May 16, 2015
    25
    强烈推荐AndroidAnnotations 这个框架
    Lonely
    Lonely
    May 16, 2015
    26
    那你就不要学了,省的自找麻烦
    zhanglp888
    zhanglp888
    May 20, 2015
    27
    @Jabin 是不是跟roboguice一样?能给大概介绍一下吗?
    zhanglp888
    zhanglp888
    May 20, 2015
    28
    @Jabin 自己仔细看了AndroidAnnotations ,真心爱上了它,感谢~~~~
    qw7692336
    qw7692336
    Jul 12, 2015
    30
    @puncsky
    不是可以直接
    List<Map<String, String>> child1 = new ArrayList();
    吗?后面的<>都不用了。


    @zhanglp888
    不要用roboguice,这个东西已经被Google点名批评了,详见
    http://developer.android.com/intl/zh-cn/training/articles/memory.html#DependencyInjection

    你可以用androidannotations
    https://github.com/excilys/androidannotations
    或者butterknife
    https://github.com/JakeWharton/butterknife
    实现一些方便操作。

    https://github.com/evant/gradle-retrolambda
    可以让你在Android当中使用lambda表达式。
    配合RxAndrod或者RxJava
    https://github.com/ReactiveX/RxAndroid
    https://github.com/ReactiveX/RxJava
    可以让你的代码变得优雅。


    @zhouquanbest
    @allan1st
    为什么不用专用的RxAndroid而用RxJava呢?
    lxyyzm
    lxyyzm
    Dec 25, 2016
    31
    @scarlex js 比 java 简洁一万倍好吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1743 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 60ms · UTC 14:16 · PVG 22:16 · LAX 06:16 · JFK 09:16
    ♥ Do have faith in what you're doing.