设计并开发出一个完整的android app 需要掌握哪些知识?
你这个问题有些笼统,一个完整的app有简单有复杂,不同的app应用功能的差异也导致不同的技术实现或者算法模型。大体来说,一个app从设计到最终实现需要你懂得以下几个必要方面:
1、前期需求规划与信息、交互设计——你需要制定出一个完整的需求文档,功能文档,流程图,时序图。
2、交互设计、UI设计——设计出基本且完善的原型图和app基础的交互设计效果,之后再根据这些设计出完整的UI界面并学会切图,一些需要做自适应的素材需要做点9patch。 这里还需要你懂得px,pt和dp之间的换算,屏幕密度的换算和相互之间的系数,以便你的app能完美适应不同分辨率设备。其中交互设计需要你懂得很多人机操作的技巧经验,掌握Axure等交互工具的使用,UI设计需要你掌握Photoshop和Illustrator等操作。
3、使用ADT之类的开发环境进行app开发,你最基本的也得掌握java语言,熟悉android环境和机制,这里面涉及面广,请根据项目自行学习相关知识。
4、如果不是单机版的app,需要用到服务器,那你还得掌握WebService相关知识和开发语言,常用的有ASPNet,PHP,JSP等。
5、熟悉并能开发数据库。
6、某些功能需要做算法,这还需要一定得专业知识,尤其是数学基础。
7、熟悉API接口开发,这里包括你自行开发API的能力以及调用第三方API的经验。
8、熟悉TCP/IP,socket等网络协议和相关知识。
9、熟练掌握App发布的流程,真机调试技巧,证书,打包,上架。
App开发其实不一定适合一个人搞,太费劲,除非是一个单机版的小应用,或者利用现成的api开发简单的第三方应用,否则还是让一个团队来完成各自擅长的领域。
1、Photoshop
Adobe Photoshop,简称“PS”,是由Adobe Systems开发和发行的图像处理软件。Photoshop主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具,可以有效地进行编辑工作。ps有很多功能,在图像、图形、文字、视频、出版等各方面都有涉及。
2003年,Adobe Photoshop 8被更名为Adobe Photoshop CS。2013年7月,Adobe公司推出了新版本的Photoshop CC。
自此,Photoshop CS6作为Adobe CS系列的最后一个版本被新的CC系列取代。截止2016年12月Adobe PhotoshopCC2017为市场最新版本。
Adobe支持Windows操作系统 、安卓系统与Mac OS, 但Linux操作系统用户可以通过使用Wine来运行Photoshop。
2、Illustrator
Adobe illustrator,常被称为“AI”,是一种应用于出版、多媒体和在线图像的工业标准矢量插画的软件。
作为一款非常好的矢量图形处理工具,该软件主要应用于印刷出版、海报书籍排版、专业插画、多媒体图像处理和互联网页面的制作等,也可以为线稿提供较高的精度和控制,适合生产任何小型设计到大型的复杂项目。
3、Indesign
InDesign软件是一个定位于专业排版领域的设计软件, 是面向公司专业出版方案的新平台,由Adobe公司于1999年9月1日发布。
它是基于一个新的开放的面向对象体系,可实现高度的扩展性,还建立了一个由第三方开发者和系统集成者可以提供自定义杂志、广告设计、目录、零售商设计工作室和报纸出版方案的核心。可支持插件功能。
4、Coreldraw
CorelDRAW Graphics Suite是加拿大Corel公司的平面设计软件;该软件是Corel公司出品的矢量图形制作工具软件,这个图形工具给设计师提供了矢量动画、页面设计、网站制作、位图编辑和网页动画等多种功能。
该图像软件是一套屡获殊荣的图形、图像编辑软件,它包含两个绘图应用程序:一个用于矢量图及页面设计,一个用于图像编辑。
这套绘图软件组合带给用户强大的交互式工具,使用户可创作出多种富于动感的特殊效果及点阵图像即时效果在简单的操作中就可得到实现——而不会丢失当前的工作。通过Coreldraw的全方位的设计及网页功能可以融合到用户现有的设计方案中,灵活性十足。
5、PageMaker
PageMaker软件是一种排版软件,其长处就在于能处理大段长篇的文字及字符,并且可以处理多个页面,能进行页面编页码及页面合订。
PageMaker 65可以在WWW中传送HTML格式及PDF格式的出版刊物,同时还能保留出版刊物中的版面、字体以及图像等。在处理色彩方面也有很大的改进,提供了更有效率的出版流程。而其他的新增功能也同时提高了和其他公司产品的相容性。
主要工具有:
最常用的就是dreamweaver,cs6目前是功能最强大,问题最少的了。
dw有一个比较方便的就是可视化编程,可以边看效果边敲代码,还有自动提示代码的功能,还有ediplus,这个其实就相当于一个字体有颜色的记事本,感觉dw占用内存太多了,直接用 ediplus写代码。
eclipse可以写java、php还有 上面的各种代码。
Zend Studio 是专门写php的,但是上面这2种工具比较专业。
web前端开发需要掌握的技术:
学习html,这个是最简单的,也是最基础的要熟练掌握div、form table、ul li 、pspan、font这些标签,这些都是最常用的,特别是div和table,div用于布局、table也可以用于布局,但是不灵活,基本 table是用来和数据打交道。
学习css,这里说的css不包括css3,一般我们看到web前端开发工程师的要求里面,有一个会使用css+html 或者 css+div 来进行界面布局,所以css是用于辅助html来布局和展示的,我们称之为“css样式”,为什么会说css+div呢因为我上面说了div就是 html主要用于布局的东西,所以div就是核心掌握的东西。那么css肯定必须要配合div来使用才好css要熟练掌握float、 position、width、height,以及对于的最大最小、会使用overflow、margin、padding等等,这些都是跟布局,有关系的样式,一点要掌握。
学习js,可能前两个大家觉得还过的去,看到js就蛋疼了,js入门很简单的,不需要会很多东西的,只要会根据某个id,或者name拿到网页dom或者样 式,或者值,给某个id或者name的元素标签赋值、或者追加数据、追html,这个是跟数据有关系的操作,然后数据逻辑判断,效果方面的,无非就是跳转、弹框、隐藏什么的,把这些全部结合其他就是实际用途了,代码一点都不难,会了这些基础js。
学习jquery jquery是相当于把js封装了一套的一个js插件,目的就是操作起来更方便,代码写的更少,jquery入门也很简单,那些是入门需要学的和js一样,只是换成了jq的代码。
最好会点后台语言,比如java、php,为什么呢因为我们前台界面的数据都是从后台来的,如果会点后台代码,就知道怎么跟后台交互数据是最好的,,这样节约时间,也可以让前端代码更规范。
学习css3+html5。
上面六点,基本是一个搞web前端开发工程师需要掌握的技术。
1、可以通过电脑iptxt文件来填写首选DNS服务器地址。
2、电脑在正常上网的情况下,点击桌面右下角开始菜单,找到运行选项点击进去,输入cmd打开命令行窗口。在编辑框内输入ipconfig /all >d:\iptxt 就可以输出本机的IP到D盘根目录的iptxt文件了。
3、可以看到DNS首选和备选的地址。
4、由于每个区域地址不一样,以文件实际显示地址为主,然后根据此地址进行填写即可。
入门
在我理解下的基础知识,就是我们可以写一些基本的样式,并能对页面的元素进行操作。举例来说,就是我们用Spring和JSP写了一个博客,然后我们可以用jQuery来对页面进行一些简单的操作,并可以调用一些API。因此,我们需要基本的HTML / CSS知识。只是要写好CSS并不是一件简单的事,这需要很多实战经验。随后,我们还需要有JavaScript的经验,要不怎么做前端呢?
同时,我们还需要对DOM有一些基础的了解,才能做一些基本的操作,如修改颜色等等。在这种情况下,最简单的方案就是使用jQuery这样的工具。不过,如果可以自己操作DOM是再好不过的了。
中级篇
中级篇就更有意思了,现在我们就需要对页面进行更复杂的操作。Ajax和JSON这两个技能是必须的,当我们要动态的改变页面的元素时,我们就需要从远程获取最新的数据结果。并且我们也需要提交表单到服务器,RESTful就是必须要学会的技能。未来我们还需要Fetch API,ReactiveX这些技能。
除此我们还需要掌握好HTML的语义化,像DIV / CSS这也会必须会的技能,我们应该还会使用模板引擎和SCSS / SASS。而这个层面来说,我们开始使用Nodejs来完成前端的构建等等的一系列动作,这时候必须学会使用命令行这类工具。并且,在这时候我们已经开始构建单页面应用了。
高级篇
JavaScript是一门易上手的语言,也充满了相当多的糟粕的用法。几年前人们使用CoffeeScript编成成JavaScript来编写更好的前端代码,现在人们有了ES6、TypeScript和WebPack来做这些事。尽管现在浏览器支持不完善,但是他们是未来。同样的还有某些CSS3的特性,其对于某些浏览器来说也是不支持的。而这些都是基于语言本来说的,要写好代码,我们还需要掌握面向对象编程、函数式编程、MVC / MVVM / MV这些概念。作为一合格的工程师,我们还需要把握好安全性(如跨域),做好 授权(如HTTP Basic、JWT等等)。
工程化
这个标题好像是放错了,这部分的内容主要都是自动构建的内容。首先,我们需要有基本的构建工具,无论你是使用gulp、grunt,还是只使用npm,这都不重要。重要的是,你可以自动化的完成构建的工具,编译、静态代码分析(JSLint、CSS Lint、TSLint)、对代码质量进行分析(如Code Climate,可以帮你检测出代码中的Bad Smell)、运行代码中的测试,并生成测试覆盖率的报告等等。这一切都需要你有一个自动构建的工作流。
兼容性
虽然我们离兼容IE6的时代已越来越远了,但是我们仍然有相当多的兼容性工作要做。基本的兼容性测试就是跨浏览器的测试,即Chrome,IE,Firefox,Safari等等。除此还有在不同的操作系统上对同一浏览器的测试,某些情况下可能表现不一致。如不同操作系统的字体大小,可能会导致一些细微的问题。
而随着移动设备的流行,我们还需要考虑下不同Android版本下的浏览器内核的表现不致,有时候还要一下不成器的Windows Phone。除此,还有同一个浏览器的不同版本问题,常见于IE。。
前端特定
除了正常的编码之外,前端还有一些比较有意思的东西,如CSS3和JavaScript动画。使用Web字体,可惜这个不太适合汉字使用。还有Icon字体,毕竟这种字体是矢量的。不过Icon字体还有一些问题,如浏览器对其的抗锯齿优化,还有一个痛是你得准备四种不同类型的字体文件。因此,产生了一种东西SVG Sprite,在以前这就是CSS Sprite,只是CSS Sprite不能缩放。最后,我们还需要掌握一些基本的图形和图表框架的使用。
软件工程
这一点上和大部分语言的项目一样,我们需要使用版本管理软件,如git、svn,又或者是一些内部的工具。总之你肯定要有一个,而不是 20160731zip这种文件。然后,你还需要一些依赖管理工具,对于那些使用Webpack、Browserify来将代码编写成前端代码的项目来说,npm还是挺好用的。不过就个人来说,对于传统的项目来说我总觉得bower有些难用。我们还需要模块化我们的源码文件,才能使其他人更容易开始项目。
调试
作为一个工程师来说,调试是必备的技能。大部分浏览器都自带有调试工具,他们都不错——如果你使用过的话。在调试的过程中,直接用Console就可以输出值、计算值等等。如果你的项目在构建的过程中有一些问题,你就需要debugger这一行代码了。
在一些调用远程API的项目里,我们还需要一些更复杂的工具,即抓包工具。在调试移动设备时,像Wireshark、Charles这一类的工具,就可以让我们看到是否有一些异常的请求。当然在这个时候,还有一个不错的工具就是像Chrome自带的远程设备调试。对于移动网站来说,还要有Responsive视图。
测试
我遇到的很多前端工程师都是不写测试的,于是我便把它单独地抽了出现。对于一个前端项目来说,正常情况下,我们要有单元测试、功能测试,还有要一些UI测试来验证页面间是否可以跳转。对于依赖于第三方服务的应用来说,还要有一个Mock的服务来方便我们测试。如果是前后端分离的项目,我们还需要有集成测试。
性能与优化
要对Web应用进行性能优化,可能不是一件容易的事,有时候我们还知道哪些地方可以优化。这时候人们就可以使用Yahoo的YSlow,或者我最喜欢的Google PageSpeed来检测页面的一些问题,如有没有开启GZip、有没有压缩、合并、Minify JS代码等等。
我们还应该借助于NetWork这一类的工具,查看页面加载时,一些比较漫的资源文件,并对其进行优化。在一些情况下,我们还需要借助如Chrome的Timline、Profiel等工具来查看可以优化的地方。
设计
前端工程师还需要具备基本的UI技能。多数情况下拿到的只是一张图,如果是一个完整的页面,我们就需要快速分割页面布局。而依赖于不同的页面布局,如响应式、网格、FlexBox布局也会有不同的设计。而有些时候,我们就需要自己规划,制作一个基本的线框图(Wireframe)等等。
UI设计师工作内容的内容主要包括:负责网页、软件或界面的美术设计、创意工作和制作工作;根据各种相关软件的用户群,提出构思新颖、有高度吸引力的创意设计对页面进行优化使用户操作更趋于人性化维护现有的应用软件产品;收集和分析用户对于GUI的需求四方面。
很多人选择学习设计其实都是三分钟热度,最好在学习之前先来做一个小测试
→点击测试我适不适合学设计
要成为一个优秀的UI设计师,除了需要掌握Photoshop、Illustrator等设计工具外。还需要掌握Dreamweaver、HTML、DIV+CSS等网站技术工具,同时还需要具备交互设计的思想。
建议学员选择天琥教育,天琥教育是一所集设计培训、教育教学、设计应用知识推广、设计课程研发于一体的集团化连锁教育机构。天琥设计课程由专门课程研发团队自主研发,课程设计紧跟互联网潮流,将最前沿的设计融入课程中,并且每年持续精进课程内容和教学建设。目前天琥已开设多个专业方向课程,包括UI设计、平面设计、网页设计、室内设计等专业。
0条评论