首页 文章 精选 留言 我的

精选列表

搜索[独立开发者],共10000篇文章
优秀的个人博客,低调大师

从小白到独立开发Android和IOS两种平台app过程与总结

16年上半年在帮老师,帮外面随便做点东西以便得到些生活费养活自己。下半年去外面公司待了一段时间,然后选择回来帮自己做个东西,历时三个月,独自完成安卓及IOS版本app的开发部分。 开发过程与问题 我之前没了解过安卓和IOS开发,一开始对整个项目也没什么概念,脑袋中只知道要做个电商app,中间就是遇到各种问题,后来一步一步的做下去解决掉。我做的是电商app。整个过程学习占了大部分时间,修复Bug,还有重构代码。三个月大多数时间都只做这三件事。 学习安卓,看郭霖的《第一行代码》,再看点极客学院的安卓视频,这是快速做东西的号搭配。《第一行代码》我看了好几遍,我买了好几本安卓书,这本写的最好,我看的最多。极客学院的安卓视频,教的很浅,但是时间短,所以可以在短时间内知道一些安卓技术,然后结合第一行代码,不同就翻阅,google就可以做东西了。 学习IOS,看小码哥的ios视频,不懂就看。ios开发的我没遇到好书,关于Objective-C的,买本Objective-C的参考书就好了。 Android开发知识点 想要做一个完整的Android app,必须要会的东西。 Gradle 用来对安卓项目打包编译,项目的依赖,签名配置等。一个自动构建工具 (必须) Activity,Fragment,ViewPager,ToolBar,BottomBar,Recyclerview。(必须) 这些要会用,理解的越深越好 (不同的App需要的组件可能不一样,我觉得这几个大部分的app都会用到吧) Android的事件机制,事件的传递拦截等。 布局控件,RelativeLayout,LineerLayout。一些布局的属性都要掌握 (必须) 网络通信(我用的是Volley)(必须,一般app都要和后台通信吧) 自定义简单的控件 (有些内置的控件,可能无法满足需求,需要自己定制简单的控件) 个人感觉会了上面的这些东西,做出一个App一般是足够的。 Android可能遇到的问题 ViewGroup和View的关系,经常出现childView alredy have a parent.you need to remove it's parent first. Fragment的生命周期要理解的很深才行,不要以为看了google的官方文档上面的Fragment生命周期就以为懂了,后来不断的遇到问题,专门研究下会好点。 布局过程也要深入了解下, 各种wrap_content,match_parent里面是怎么回事,布局文件里面的属性到底是怎么回事,要明白。 // 额外的工具库,让app变得更加强大 ButterKnife,这个很好用,用于绑定视图,可以少写不少代码 GSON 将JSON数据转换为JAVA的模型,或将模型转换为JSON数据传输给服务器 EventBus 这个库说的是可以更方便的进行android组件之间的通信,可是我基本没怎么用到 SmartTabLayout 这个可以自己换成其他的库,用于页面滑动,增强版的ViewPager。 推送通知用的阿里的云推送 分享用的 ShareSDK 两个多月,知识点学到了这些。这是做出一个完整的app需要的知识点。 IOS知识点 做完了Android开发之后,学习IOS,我的建议是先不要入门直接用Swift,当初我也是新手,徘徊要选Objective-C还是Swift得时候,听说Swift是更加现代化的工业级标准语言,吸收了Python还有现代流行语言特性,学起来更简单,我就首先学习的Swift,但是新手直接用Swift会出问题的。 Swift2.x和Swift3.x的版本不同,虽然是小的不同,但对刚学的新手,会让新手产生迷惑 Xcode的版本一直在变,我按照苹果官网给出的实例敲代码都无法运行,因为苹果官网给的实例程序是基于Swfit2.x好Xcode7.2的。 仅仅是一些小的版本差异,在Xcode8上就不能用。这对新手都比较致命,直接打击自信心。 Swfit的库并不多,资料也不是很多,在我搜很多资料的时候,大部分都是Objective-C的,而且从书店买的书大部分都是Objective-C的,基于Swift3.x版本的书几乎没有。 我在用Swift的时候无法使用阿里百川的电商SDK接口,因为百川电商SDK用的是Objective-C开发的,大公司的IOS产品都是基于Objective-C开发的。 ... 基于以上几条,如果新手学习IOS开发,现在我的建议是先学Objective-C,虽然会多写几行代码,但是资料多,有头绪,Swift3.x的碰到了问题,资料就很少。 做出一个IOSapp需要掌握的知识点: 掌握UIViewController。 掌握常见的视图,几乎所有的视图都是以UI开头的,UIView,UILabel,UIButton,UIImageView,UITable,UIScrollView等等。 掌握几种常见的视图创建于加载的方式。从代码创建会麻烦,可以从XIB文件创建视图,从Xib初始化视图和从代码初始化视图调用的初始化方法不同。 掌握Foundation框架,几乎绝大部分代码都要用到这个框架里的东西,里面的东西就是在我们熟悉的类型前面加上NS,代表NextStep公司的意思,了解了这,记住NSString,NSArray,NSNumber等等就容易了。 掌握自动布局,这个很重要,会自动布局才能在不同的手机屏幕下做适配。 Objective-C的语法知识,刚开始会用起来比较怪,后来就好了。 //额外的库 MJRefresh 表视图的增强工具 MJExtension 类似于Java的GSON,数据转模型的。 Masonry 很好用的代码自动布局库 AFNetworking 网络通信用的库 YPTabBarController 页面滑动效果用到的 Toast 类似于安卓的Toast,在屏幕的某个地方提示一条消息,类似于AlertView。 如果你曾先学习的是Objective-C,那么两个星期应该可以做出一个IOS app。一个星期用来学习Objective-C,一个星期用来动手写代码。 后台 我后台使用的是Laravel框架,优雅,简单。主要用了Laravel的以下几个功能 掌握Request 掌握Route,在路由文件里定义各种路由,由控制器处理 数据库的控制部分,Laravel有ORM还有普通的数据库操作,我觉得普通的数据库操作就够了。 中间件 Laravel的View部分,这个给非技术人员写一些页面以便非技术人员增删改查数据。这个要涉及前端了,好在我之前做过一段时间的前端。 Laravel是一个简单的优雅的后台框架,很好用,很好学。如果你的服务器用的是Nginx的话,那么还要做一些额外的配置。 整个App基本上就这么多东西,历时三个月从小白到一个人写后台,android ,ios端。创业团队…… Android与IOS对比 Android的官方文档非常全,语言只有好用的Java。IOS的缺点是Objective-C用起来很奇怪,Swift的资料又不多,苹果的官方文档又是过时的。 Android要适配多个版本的机型,刚开始app就不兼容低版本的Android app,后来7.0版本的App又有些不兼容……,而IOS的不管几s基本上没问题,除了IOS的操作系统版本变化,我只用了IOS 10的系统,其它的没用。 Android的控件很多,用起来有些麻烦,刚开始会经常崩溃,IOS的控件只有几个,但是每个控件都封装的很好,每个控件都提供了很多功能。 我觉得IOS学起来,开发起来更容易。 但Android用起来会更广泛,Java也比较通用,Android开始开源的,我觉得android做精的话,会更有趣一些。 总结 迫不得已,未毕业之际,加入一个创业团队,自己又不是科班出身,认识的搞IT的又少,只能扯开膀子自己干,学了三个月的时间,自己知识面上宽了不少,解决问题的能力强了不少,同时也意识到了一些问题。 做IT这一行,知识是学不完的,绝大部分问题都是类似的,你愿意去找总能找到问题的解决方案,但是因为绝大部分问题解决方式都类似,Google,StackOverFlow,所以自身的进步只在知识点上,解决问题就那几种方法。 知识是学不完的,知识也都是类似的,但知识的深度也是无止境的。 有句话说过:知识的广度和深度是相辅相成的,知识的广度促进你往更深的方向挖掘,知识的深度又可以让你融汇贯通到更广的领域。 现在知识点不够精是我的不足,但我不是那种蜻蜓点水到处学一点的人,我所学的东西都有做出成品出来。而且我是短时间内边学边做的。 路漫漫,东西做的不够精致,等于没做,在一个创业公司,东西做的不好,对自己也是致命的,不完完善优化……

优秀的个人博客,低调大师

主流开源开发者工具落地阿里云,进一步提升开发者体验

在云计算大数据时代,企业的不断上云,业务的不断发展,技术架构的不断演进,导致资源、应用和数据的管理成本不断增加,运维难度不断加大。业务场景的不断和复杂和变化,不得不引起我们更多的思考: 业务基础设施架构如此复杂,是否可以实现一键搭建? 自定义云镜像,能否实现批量生产? 数据安全,是企业和个人最关心的事儿~ AK,证书,敏感数据如何实现自动加密,获取,存储? 不想手动登录机器,如何实现应用开发运维? 机器这么多,架构这么复杂,如何快速迁移到阿里云上? 企业上云,多家云资源如何统一管理? ... 面对这些问题和困扰,如果能借用一种或者多种自动化工具,让机器来帮我们做一些繁琐的工作,而我们只需关注一些简单的配置,那么将大大提高工作效率。 如何让机器给我们做事情呢?这就是基础设施即代码(Infrastructure As Code,IaC)。即,将我们的阿

优秀的个人博客,低调大师

推荐开发者使用 Material Design 组件

为了保证您的应用与用户设备中安装的其他应用在视觉和行为上保持一致,我们推荐您遵循Material Design 规范,因为用户从一个应用中学习的操作模式可以无缝衔接地在另一个应用中使用。 Material Design 规范 https://material.io/design/introduction Android 用户希望您的应用在视觉和行为上与系统保持一致。您在设计视觉和导航模式时应该遵循 Material Design 规范… ——d.android.com/design 您可以使用Material Design Components(MDC) 组件库来实现这一目的。本文将列出使用 MDC 的优势,从而说明我们推荐使用它的原因。 Material Design Components https://github.com/material-components/material-components-android d.android.com/design https://developer.android.google.cn/design 组件 MDC 提供了系统标准组件的 Material 版本,例如Buttons、Toolbars、CheckBox等等,使用这些组件能轻松实现 Material 风格。如果您使用了MaterialComponents主题,当您 inflate 一个 layout (通过 MDC 的View Inflater) 时,被实例化是 Material 组件而不是标准组件,因此您不需要对布局进行重大的更新就能轻松实现 Material 风格。 <!-- Copyright 2019 Google LLC. SPDX-License-Identifier: Apache-2.0 --> <!-- 标准组件 Button 将会被替换为 MaterialButton --><Button ... /> <!-- 您甚至可以使用 MaterialButton 特定的属性 --><Button ... app:icon="@drawable/foo"/> <!--如果您想用具有向后兼容能力的 AppCompatButton 而不是 MaterialButton,您可以这样做 --><androidx.appcompat.widget.AppCompatButton.../> Buttons https://material.io/develop/android/components/buttons Toolbars https://material.io/develop/android/components/app-bars-top CheckBox https://material.io/develop/android/components/checkboxes View Inflater https://developer.android.google.cn/reference/com/google/android/material/theme/MaterialComponentsViewInflater 所有 Material 组件都继承自对应的AppCompat组件,因此它们享有相同的向后兼容能力和新版本的 bug 修复。 Material 组件在对应的系统标准组件和AppCompat组件的基础上拓展出更多样式和功能,例如MaterialButton拥有以下多种样式: https://material.io/develop/android/components/buttons ​​​​​​​ <!-- Copyright 2019 Google LLC. SPDX-License-Identifier: Apache-2.0 --> <!-- Contained button --><Button ... style="?attr/materialButtonStyle"/> <!-- Text button --><Button ... style="?attr/borderlessButtonStyle"/> <!-- Outlined button --><Button ... style="?attr/materialButtonOutlinedStyle"/> 我最喜欢的功能之一是使用MaterialTextView替换TextView,它新增的功能可以很方便地在TextAppearance中设置行高。 MaterialTextView https://material.io/develop/android/components/material-text-view 新增的功能 https://medium.com/androiddevelopers/whats-your-text-s-appearance-f3a1729192d 除了拓展现有组件的功能外,MDC 还提供了一系列全新的组件。您可能知道Bottom Navigation、Bottom Sheet和Floating Action Button,但未必听说过Chips、Date Picker和Time Picker。 Bottom Navigation https://material.io/develop/android/components/bottom-navigation-view/ Bottom Sheet https://material.io/develop/android/components/bottom-sheet-behavior/ Floating Action Button https://material.io/develop/android/components/floating-action-button/ Chips https://material.io/develop/android/components/chip/ Date Picker https://material.io/develop/android/components/picker Time Picker https://github.com/material-components/material-components-android/blob/master/docs/components/TimePicker.md MDC 提供的全部组件列单,请查阅——组件: https://material.io/components Material 主题 Material 主题可以更系统地自定义Material Design 样式来体现您的产品品牌。Material 主题包括颜色、字体样式和形状属性。对其进行自定义将自动应用到您用于构建应用的组件上。 Material 主题 https://material.io/design/material-theming/ 颜色 https://material.io/design/color/ 字体样式 https://material.io/design/typography/ 形状 https://material.io/design/shape/ 您可以将 Material 主题理解为创建设计系统的设计系统。您只需配置好颜色、字体样式和形状,即可得到一套基于您品牌的完整设计系统。 Nick Rout在以下文章中分别深入地介绍了这三个子系统: 打造 Material 颜色主题 | 实现篇 打造 Material 字体样式主题|实现篇 打造 Material 形状主题 | 实现篇 Nick Rout https://medium.com/@ricknout 深色主题 MDC 组件遵循 Material 的深色主题背景规范实现了深色主题。在深色主题下,许多组件都将调整它们的颜色,并且在阴影不可见的情况下添加了 elevation 叠加层以表现高度变化。 深色主题背景规范 https://material.io/design/color/dark-theme.html Chris Banes在下面这篇文章中深入介绍了 MDC 的深色主题: 使用 Material Design 组件实现深色主题 Chris Banes https://chrisbanes.medium.com/ Material 动效 Material Design 还针对转场动画制定了规范。现在,MDC 不仅提供了规范,还将这些模式实现为 Transition 以便您在应用中使用。 规范 https://material.io/design/motion/the-motion-system.html Hunter Stich在下面这篇文章中介绍了 Material Motion 库: 使用 Material Design 组件实现 Material 动效 Hunter Stich https://medium.com/@hunter_stich 使用 Compose Jetpack Compose是 Android 系统的下一代 UI 工具包,目前已正式发布。它会提供 Material 风格的组件和主题。尽早使用 MDC 将为未来迁移至 Jetpack Compose 做好准备 — 它们使用了相同的概念、设计名词和组件。您甚至可以使用类似MDC-Android Compose主题适配器的库来简化迁移过程,该库将 XML 实现的 MDC 主题转换为 Compose 的MaterialTheme。 Jetpack Compose https://developer.android.google.cn/jetpack/compose MDC-Android Compose主题适配器 https://github.com/material-components/material-components-android-compose-theme-adapter MaterialTheme https://developer.android.google.cn/reference/kotlin/androidx/compose/material/package-summary#materialtheme 推荐使用 Material 希望您已经清楚我们推荐使用Material Design Components构建 Android UI 的原因。我们近期更新了在 Android Studio 中通过File > New Project菜单新建的模版,这些模版为您预设置了 Material 主题并使用了 MDC,因此您可以更容易的开始使用 MDC。如果您还没有迁移到 MDC,请查看我们的迁移指南: https://medium.com/androiddevelopers/migrating-to-material-components-for-android-ec6757795351 Material Design Components https://github.com/material-components/material-components-android 近期更新 https://developer.android.google.cn/studio/preview/features#mdc-templates

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册