如题,这样做会有什么后患吗?我说的是web app,当然不是native app。新人提问求别踩。
前提是什么APP开发;混合APP肯定是不行了;原生的和程序沟通几乎鸡同鸭讲;更何况webAPP;只能做个美工了;
如果不懂技术栈,沟通是最大得障碍;
技术栈这个东西,不一定懂得越多越好,但是一点不懂肯定是不行。
现在app开发又分两种,native app和 web app,
你直接去学app开发对开发native app是没有问题。
建议你还是有空了解一下。
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的比, 就是和后端比都差很多...当然一些大公司会好一些...
原生app要求技能栈算是最少了吧?
学个前端要懂h5、css3(扩展成less)、javascript(扩展成Node=>Node会涉及各种后端知识)
后端要知道的东西就更多了..
1 回答592 阅读✓ 已解决
1 回答1.5k 阅读
2 回答1k 阅读
1 回答1.3k 阅读
1 回答1.1k 阅读
1 回答969 阅读
1 回答603 阅读
我说说我的学习经历吧,去年这个时候准备学习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页面。