android - 请问不懂web开发,直接去学APP开发合适吗?
高洛峰
高洛峰 2017-04-17 16:13:10
0
11
895

如题,这样做会有什么后患吗?我说的是web app,当然不是native app。新人提问求别踩。

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(11)
左手右手慢动作

我说说我的学习经历吧,去年这个时候准备学习android开发,由于没有java基础,先学了一段时间java,感觉内容好多,然后看安卓也是一头雾水,后来开始学html+css,由于兴趣,所以很投入,基本网页布局,跨平台app,最开始用过phonegap+jquery mobile;期间还用过inter xdk+framework;最后还是在无意中遇到mui,用mui+html5plus开发,还试过apicloud。后来对性能不满意,学了vuejs,准备看react native的时候发现还不如直接用原生,现在回过头搞原生安卓。web app,hybrid app,native app,本质来说是做app,所以说到底还是要对安卓或者ios应用开发的基本流程熟悉,虽然目前有一些第三方提供平台无需学习原生开发就可以开发,确实可以,但是从一个程序猿的发展来说,人还是不能太懒,多学点底层的还是要好一些,遇到问题可以自己解决。当然你直接做这种基于h5的app,本质上还是在做web页面。

左手右手慢动作

技术栈这个东西,不一定懂得越多越好,但是一点不懂肯定是不行。
现在app开发又分两种,native app和 web app,
你直接去学app开发对开发native app是没有问题。
建议你还是有空了解一下。

迷茫

一点关系都没有。

洪涛

如果你不知道你该学什么,就去尝试所有你已知的技术,你就会越来越多无知,这样你就可以知道你所擅长什么,你所挚爱什么。

左手右手慢动作

我觉得不合适,你不懂web怎么开发webapp?如果整个webapp都是你自己开发的,你都要懂。如果你不负责web部分,那么web部分,你可以不懂。

PHPzhong

前提是什么APP开发;混合APP肯定是不行了;原生的和程序沟通几乎鸡同鸭讲;更何况webAPP;只能做个美工了;

如果不懂技术栈,沟通是最大得障碍;

PHPzhong

WebApp肯定离不开WebView,WebView其实就是一个浏览器,只不过它能把用户保存的密码保存到你的应用目录下,比如/data/data/com.example.myapp/app_webview下面,在没有root过的手机里,其他应用无法读到这些用户保存的密码信息.不过WebView里的重头戏还是网站开发,所以Web技术(HTML/CSS/JS/PHP/SQL)这些肯定不能丢,你看看下面这个简单的一个App的代码,也就那几句,所以重头戏肯定不是Java了:
~/AndroidStudioProjects/myapp/app/src/main/java/com/example/myapp/MainActivity.java

package com.example.myapp;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {
    private WebView webview;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        webview = new WebView(this);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.setWebChromeClient(new WebChromeClient());
        webview.setWebViewClient(new WebViewClient() {
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });
        webview.loadUrl("http://segmentfault.com");
        setContentView(webview); //在MainActivity上显示WebView
    }
    @Override
    public boolean onKeyDown(int keyCoder, KeyEvent event) {
        if(keyCoder == KeyEvent.KEYCODE_BACK && webview.canGoBack()) {
            webview.goBack();
            return true;
        }
        return super.onKeyDown(keyCoder, event);
    }
}

然后给应用申请个网络访问的权限就好了:
~/AndroidStudioProjects/myapp/app/src/main/AndroidManifest.xml

<manifest>节点内加入: <uses-permission android:name="android.permission.INTERNET" />

手机处理器不是PC处理器,所以不要把PC上那一套套的前端框架往WebView里堆,WebView会吃不消,用个jQuery就足够了,方便DOM操作和AJAX操作,操作按钮(链接区域)应该做的大一些,跨页面加载可以用基于HTML5 pushState和AJAX的PJAX(就是Github上代码目录的翻页效果),顶部做个进度条加载提示,不要在一个页面加载太多东西(瀑布流就不要搞了),比如AJAX加载一部分评论后,应该留一个查看更多的链接,打开新页面查看更多评论,而且页面尽量做到简洁,选择器尽量用ID,也不要过分追求动画效果了,你要知道,如果动画都不顺畅,这样的动画还有什么意义?基于WebView的WebApp界面,应该大道至简(Keep It Simple, Stupid).

大家讲道理

个人觉得, 如果连webapp还没入门, 建议还是直接学原生的app...

一入前端深似海...事情多, 要学的东西多, 关键在大部分公司都不遭待见, 工资不要说和APP的比, 就是和后端比都差很多...当然一些大公司会好一些...

Peter_Zhu

想学就学,会慢慢懂的。

Peter_Zhu

web app 的本质 还是 web ……

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板