一个ios开发着如何自学h5

2016-09-24 09:23:27 penghong_miao 阅读数 5138
自从iOS工作丢了后 就萌生了自学这个想法 但是一直在纠结学哪一门语言好 我是计算机科学与技术专业的 其实对于我来说 学啥都算是有点基础的 

但是被iOS坑惨了之后 就会不自觉的进行各个方向和前景分析 或许是一朝被蛇咬十年怕井绳吧   

后来在简书上看到了 我是老和尚的一篇文章 http://www.jianshu.com/p/941091fc2ba0  感觉找到了一个模糊的目标

于是开始上网百度自学H5的各种介绍----这里找到了11个在线学习网站

1. W3Schools(需自备梯子)

W3School是学习HTML5最好的资源之一,它拥有的教程都带有例子,几乎可以解决你所需要的所有知识点。如果你想从基础开始学习HTML5的话,那么这个网站会是一个很好的选择。你可以学习到HTML5的所有元素,比如标签、图像、图形,以及无需多做其他操作,只需跟随教程的教书步骤走即可,用简单的语言解释和交互让学习变得简单。

2. Html Goodies

如果想要观看HTML5的速成课程,以及获取学习HTML5的所有性能,那么htmlgoodies会是一个不错的开始。在网站的左边部分,你可以看到分类细致的基础、教程。问答等,你可以任意快速跳转到自己想要开始学习的部分。

3. HTML5-tutorial(需自备梯子)

HTML5-tutorial可以让你在短时间内有一个良好的开局,在这里,你可以了解HTML5的基本知识和要点,如何构建一个网站、编辑和调试代码进行开发学习,很适合初学者入门学习。

4. HTML5 Doctor

HTML5 Doctor网站提供了许多内容不错的文章,这些文章将会帮你更好的学习和实现HTML5开发。而且,除了这一特色,网站还有一个“Ask the Doctor”部分,在这里,可以向专家提问,通过他们的专业讲解解决你遇到的所有问题。

5. Html5 Rocks(需自备梯子)

如果开发人员想要在网站中实现HTML5,并开展HTML5编码相关的研发,那么要关注Html5 Rocks网站。在这个网站中能够获取HTML5的所有功能信息,以及学习如何在网站或应用程序中实现。

6. Alison

Alison是免费学习HTML5的一个很好的在线平台,上面提供的HTML5课程,让你逐步去学习设计、构建和推出Web上的页面。你将获得高品质的视频和持续的学习时间,当然也可以按照自己的节奏去安排HTML5的学习。

7. Udacity

这是另一个很好的在线学习平台,无论你是初学者还是具有中级水平的开发人员,它都为你准备了相应的HTML5画布(canvas)和游戏开发的课程。有兴趣的,不妨一试。

8. thenewboston

在thenewboston你可以找到HTML5免费的视频课程,这个网站拥有很好的编程视频课程的合集,比如Adobe、Java和C++。在计算机科学部分你可以找到HTML5编程,可以得到一些HTML5、画布、视频播放器的教程,并且还都是免费的。

在线学习HTML5编程的高级教程

通过免费的教程、博客、视频,我们已经获得了基础和全面的HTML5编程知识,那么是时候通过高级的HTML5视频教程来深入的了解HTML5编程技巧。大量的实践之后,我发现了这些网站,你可以在HTML5上使用高端编程进行项目、小测验、应用来学习先进的HTML5。

9. Eduonix

如果不提及学习HTML5这一话题的话,我们真的会错过Eduonix。这是一个优秀的在线平台,你可以找到所有Web技术和移动开发技术。Eduonix的HTML5编程项目课程,是开发人员通过10个项目和测试,来提升他们HTML技能的一大资源。

10. Udemy

在这个平台上,无论你是什么类型的程序员都可以进来学习HTML5及其他一些的编程语言。这里通过互动视频来学习HTML5,当然学完还有相关认证。在Udemy上你可以找到基于HTML5的项目课程去提高你在Web设计中的技能。你只需在Udemy上注册并参加注册课程,就可以享受视频讲座。

11. Webucator

Webucator网站提供现场培训课程、私人培训、集体培训和自学课程,来对你的HTML5技能进行高级训练。不过你需要去支付一笔较高的费用,但有付出总会有回报的。

 

2016-03-13 15:17:56 harder321 阅读数 14213
  本人从事ios开发3年,android开发1年,H5开发半年,接触RN刚好一个星期,就喜欢上这个框架了,在这里说说理由,还有推荐更多的原生开发者投入进RN的开发大军里面来。


    首先说说原生开发的麻烦的问题,无论是ios,还是android,代码都不具备实时更新的特性,只不过android在这个范畴的需求不是很大,不如ios,因为ios特别需要这个,众所周知apple的审核难度超级大,拿android来比较,如果android 上架需要一天时间,ios就是它的7、8倍,甚至十多倍时间,同样一个app,经常发生android已经上架运营了,ios 还卡在审核的期间遥遥无期,笔者最长的审核等待时间,曾试过半年,而当时android之花了一天,问题是两个app都是笔者写的。


     所以ios对可以热更新的特性特别向往,因为这样意味着,能减少很多麻烦。


     另外一点就是跨平台的特性,自从诺基亚败退移动领域之后,手机系统基本给两大平台蚕食了,ios、android。一个app,有ios、必有android版本的局面已经形成,但是按保守的估计,开发一个app包括两大平台,一般的开发周期,都是三个月来算,就是说从无 到有,要一个季度,这个周期对于现在快节奏市场来说,时间成本还是太大了,这意味着,雇佣3个码农,一个UI,一个策划,连续工作三个月,最低花费也接近十万,而且质量还不保障。所以就催生了各种跨平台的方案,例如笔者之前就使用过cordove、H5之类的。
  

  好了,FB旗下的RN应运而生,并且在一大堆跨平台方案里面杀出重围,为什么呢?cordove可以跨平台、H5可以实时更新,但是性能都比不上原生封装的RN。

  说了那么多RN,那么作为一个原生开发者,在使用RN的时候有什么优势和劣势呢?

  劣势方面,很明显的,全新的语言框架,全新的布局方案,可能会让很多原生开发者望而反感,对,是反感!不少的原生开发者都会产生一个这样的念头,它的性能虽然勘比原生,但是其实还是不如原生,还是有一点差距,我为什么要放弃自己辛苦学来的原生技术,投入一个新的陌生的领域呢?我投入进去可能还不如那些常年与React打交道的高手呢,我要花多少时间才能用RN做出目前用原生能达到的水平?

  至少我一开始的时候,我是这样想的。但是我学习了一个星期RN后,我改变了想法,因为相比于上面所说的劣势,我发现原生开发者开发者从事RN的一个更大的优势,就是原来RN还不完善,RN的坑非常多,而且这些坑很多都不是React层面的,很多都是在原生层面上面出现的问题,虽然FB一直都在完善,但是目前还是存在,可能一段时间后还会存在,而这部分的问题,在原生代码上起码它RN 是开源的,我们可以修补,甚至拓展,就是相比于非原生跳过来的高手,你就可以更加灵活,更加接近底层,能解决当前框架解决补了的问题。

  听起来好像有些可怕,不完善还拿出来使用,这不是更加坑?

 但是如果前提是,你随时可以在原生和RN之间自由切换,那么有坑有什么问题?在RN开发里面,别人能解决的,你能解决,别人不能解决的,你也能解决

  一个框架,即可以跨平台,还可以热更新,而且性能还可以,你还能奢求什么呢?

  所以如果你是一个原生开发者,无论ios、android,我推荐你使用React Native,不为别的,就为自由自在地写自己的代码。

  目前,我自己的项目是一个大杂烩,C、C++、Js、OC、swift,彼此互相调用,以后不知道会坑到谁


  我的RN学习路线,分为两大部分:UI和事件逻辑,一切以快速做出一个app为前提。

 环境配置,学习时间一个下午,了解整个运行的原理

  fle弹性盒布局,学习时间一个下午,看着教程所有布局都测试了一遍

 常用控件使用,花费了一天,不求甚解

 手势和动画,花费了一天,不求甚解,到真正使用时候,慢慢研究,反正够用就好

 原生与RN互相调用,解决跳转的bug,1天

 原生库集成给RN使用,1天

 观看成功案例,1天


   就是这样,我就开始写APP,是不是很虚,很危险的感觉,一个APP无非就是UI界面响应逻辑,通过上面的学习,我已经学会了,写写UI界面肯定没有问题了,资讯类App,纯粹浏览的App,肯定够用了,至于那些需要更高性能的东西,视频解码、图像处理,底层逻辑的,我打算用原生写


2018-03-22 01:45:00 weixin_30314793 阅读数 101

原文地址http://www.cnblogs.com/kelsen/p/6402477.html

本文重点讨论如何在 Windows 系统中通过chrome 浏览器调试运行在 iPhone Safari 浏览器中的网页。如果你有一台 iMac/MacBook,可忽略该文档。iMac 环境下,直接通过 USB 将 iphone 与 iMac/MacBook 链接,之后在 iMac/MacBook 中打开 Safari 进入调试模式,即可对运行在手机中的页面进行调试。详情见:Using Web Inspector to Debug Mobile Safari 或 Safari Web Inspector Guide

安装 iTunes

Windows 系统首先要安装 iTunes ,打开 Apple 官网下载 iTunes 并完成 iTunes 安装,否则计算机无法正确识别 iPhone 设备。

开启调试模式

要远程调试 IOS Safari ,必须启用 Web 检查 功能,打开 iPhone 依次进入 设置 > Safari > 高级 > Web 检查 > 启用。

ios-webkit-debug-proxy

ios-webkit-debug-proxy 是一个 DevTools proxy ,项目托管在 Github 上。其使得开发者可以发送命令到真实(或虚拟)IOS设备中的 Safari 浏览器或 UIWebViews 。

安装部署

项目地址:https://github.com/artygus/ios-webkit-debug-proxy-win32。

在 Binaries 小节点击下载链接。

下载后完成解压缩,将ios-webkit-debug-proxy-win32 目录复制到 C:\ 盘。

在系统环境变量添加 C:\ios-webkit-debug-proxy-win32

启动 proxy

打开命令行终端,执行:

ios_webkit_debug_proxy-win32.exe -f chrome-devtools://devtools/bundled/inspector.html

输出结果如下:

ios_webkit_debug_proxy-win32.exe -f chrome-devtools://devtools/bundled/inspector.html
Listing devices on :9221
Connected :9222 to iPhone (c356a29f73043a36aa6de64b088d55aeeda8f034)

开始调试

打开 chrome 浏览器,在地址栏输入 http://localhost:9221/ ,这里会显示所有已连接的设备清单,选择一个设备并点击打开。

打开的页面可看到当前 iphone 中 Safari 浏览器打开的所有页面,点击要调试的页面链接打开即可进入调试界面。此时可能会有一个错误提示如下

Note: Your browser may block1,2 the above links with JavaScript console error:
  Not allowed to load local resource: chrome-devtools://...
To open a link: right-click on the link (control-click on Mac), 'Copy Link Address', and paste it into address bar.

提示浏览器禁止页面加载本地资源,需在上面的链接上点击右键复制链接,然后手动新建一个标签页将链接粘贴进去,回车访问。

根据提示说明复制链接并打开,即可看到常见的 chrome 调试窗口。

接下来,就可以进行正常的调试工作了。

转载于:https://www.cnblogs.com/111testing/p/8621078.html

2019-05-15 14:40:12 qq_42792413 阅读数 198

自我定位

如果你是一个iOS开发的新手, 是的, 这个职业的红利期早已过去, 随着APPL的股价大跌, 以及内忧外患不断, iOS这个职业的恐慌指数在不断的增高, 已经对新手不太友好了, 如果你是一个2-3年的iOS从业人员, 每天的工作内容就是画画界面, 写写业务, 调调接口, 那你是时候改变一下自己的视角从新审视下未来的职业规划, 如果你是一个3-5年的, 掌握了一定的技术及资源, 可能这篇文章的内容已经早已在你脑海中有段时日, 只是缺乏良好的契机, 如果你是6-10年的, 这个等级的一般是不会耗费时间在看技术博客上了, 自然也不会看到这篇文章.

由于iOS开发, 国内并没有相关对口的专业, 所以基本上大多数开发者都是通过自学进入市场的, 有的由于是科班出身, 重点大学, 幸运的进入大厂深造, 一路顺风顺水, 使得其他的开发者只能望其项背, 多数普通的开发者都是通过培训机构进入市场的, 并没有很深的技术基础, 没有系统的学习过计算机原理的课程, 只是从培训机构快速学习了API的调用, 对其本质不是很了解, 也造成了进阶的困难, 所以现在市面上出现了很多在线技术教育, 不坏, 学习是很好的行为, 我们这里谈的是如何精准的学习.

自我接纳

如何进行精准的学习, 首先我们需要学会自我接纳, 做产品的对目标用户都会有用户画像, 用户画像存在的意义是无论你做是什么东西说什么话, 都无法取悦所有人, 这就是定位的意义, 而对自身也是一样, 你需要了解自己的定位才能进行进一步的规划.

相同的环境造就相同的价值观, 真是由于每个人的价值观不同, 造就了这个五彩缤纷的世界, 当我们作为iOS开发刚进入市场的时候, 那时候只需要会画一个TableView就能赚取可观薪水的日子早已离我们而且, 市场成熟后门槛也逐渐的提升, 所以如果你只会用Objective-C, 画界面, 写业务, 调接口, 那真的需要加把劲了, 因为这个时代正在淘汰这些低级工作.

有了改变自己认知的契机, 我们就来问问自己三个问题:

  1. 你所拥有的技术储备真的是市场上需要的吗?
  2. 面对层出不穷的新兴技术, 如何才能做好技术选型?
  3. 你真的有把握能够在技术这条路上走到底吗?

市场数据

先不急着回答上述的问题, 在做所有决定之前我们需要看一下市场所呈现的数据, 而不是人云亦云, 不然就很容易被现在的某些知识付费收智商税, 鼓吹碎片化学习, 记住, 没有数据支撑纯靠思辨的产物不是知识, 你仅仅获得的是获取知识的感觉. 知识是需要全面系统的学习并进行场景验证的, 所以在如何规划之前先看看数据.

上图是艾瑞指数的数据, 不用去管媒体如何煽动, 数据表明iOS的占有量还是比较稳定的, 所以iOS没有人要了可能真的只是一句玩笑, 因为有市场就会有需求.

我们再来看iOS设备的分布图, 可以发现目前主要群体还是使用的iPhone6/6s的设备, 可以看到iPhone8/8P,XR, 并没有卖的很好, 换机频率下降是不争的事实. 但整个行业都是如此, 所以也不用太悲观. 所以还是以提升自身技术为先.

技术储备

技术储备是很能说明一个开发者具体的能力体现的, 所以不断的学习是每一个做技术每天需要完成的课题, 以iOS举例, iOS基本技术无外乎, UI, 网络, 业务, 三个方面, 也就是上述的, 画界面, 写业务, 调接口, 是的, 这是基础能力, 但你纵览整个大前端技术栈, 本质都是这三个方面, 所以就算你在这些地方花费再多的精力, 收益是很有限的, 所以很多的开发者会想要深入学习, 会看一些官方或者是三方的一些源码, 并写一些分析放在博客上, 自以为是的以为理解了作者的想法, 沾沾自喜. 挺好, 幻象会使人快乐, 就如有些人会看runtime, 但很少人知道Facebook的fishhook, 毕竟掌握后者的技术储备和runtime不是一个量级的.

这里假设你已经熟悉了runtime源码中的底层实现, 了解了OC的实现机制, 但你并不知道这些东西的使用场景在哪里, 为什么大厂可以用这些做一些APM的东西, 而你并不知道如何入手, 首先是你的技术储备不足, 再有就是你的视角产生了偏差.

技术储备不足, 这是先天缺陷, 只能后天弥补, C/C++/Linux/ASM, 如果你想深入理解, 这些逃不过去, 你有这些基础的话, 再看runtime源码, 就会感觉非常轻松, 没有任何的困难.

视角的问题在于, 你只有技术的视角, 只会用技术来解决问题, 自以为是的以为技术能够解决任何问题, 而事实是, 技术只是一个工具, 工具就是可替换的, 而工具只会变得越来越简单, 越来越顺手. 你的如果只被技术限制住, 你的竞争力会逐年降低.

聊聊面试

面试是一个非常热的话题, 只要发随便发一篇面经, 就会有很多人关注, 笔者有幸面试过很多大厂, 如饿了么, 京东, 美团, 携程, 头条, 招行等, 面试题无外乎就是, OC原理, UIKit, 网络, 线程, 组件化, 算法, 架构, 全部都在射程范围之内, 目前对Swift和跨平台插件化也会有一些涉及, 这个部分取决于你所面试的业务线, 但是, 算法必考, 架构必谈.

其实如果你是一个有技术储备的合格的开发者, 通过面试对你来说并不是一个非常困难的事情, 因为这些东西真的并不难, 都是一些日常涉及的东西, 常规操作而已.

谈谈全栈

对于技术提升会分为两条线, 就是深度和广度, 如果你涉及过算法, 你就会知道深度优先和广度优先, 这两条线并没有孰优孰劣, 看你所在的场景, 在知识付费领域的概念就是, T字型人才, 80%人才, 100%人才, 具体选择那条线没有什么实际的意义,

在先进互联网技术栈被笼统的分为, 前端, 后端, 移动端, 数据端, 我的观点是, 全栈很有必要, 首先你需要了解一个观点, 你的价值不取决于你的能力, 而是市场的稀缺性, 成为100%的专才, 的确可以拿到头部市场, 但成本大风险高, 而做一个80%的通才, 是一个对普通人比较友好的选择, 而如果你已经是一个有技术储备合格的开发者, T字型发展也是一个合理的选择.

如何选型

现在新兴技术层出不穷, 光iOS方向就有ReactiveCocoa, ReactNative,Flutter等, 还有人工智能, 区块链等新兴技术, H5, Andriod都没学过来了, 怎么有时间研究那么多的技术, 是的, 吾生也有涯,而知也无涯, 以有涯随无涯,殆已!所以这并不是最好的学习方式.

这里你要理解一个观念,技术不能够脱离产品而独立实现, 产品不能脱离运营而独立存活, 运营脱离了用户也没有了意义, 你要理解互联网的本质其实是人的连接, 理解了这层逻辑, 反推来看你的视野就会清晰很多, 由用户产生了需求, 运营用户而产生了群体, 分析群体而打造产品, 实现产品才需要技术, 所以在没有很大基数的用户的前提下, 对技术的追求是没有任何意义的. 而当你有了用户, 你就会知道你该如何技术选型, 最经济的方法就是选择那些稳定且成效快的, 这也是为什么三方库存在的本质.

技术之外

是的, 现在你已经理解了, 技术本质只是工具, 而互联网是人与人的连接, 是思想的碰撞, 这也是为什么一些大V仅仅是运营粉丝就能够赚的可观的收益, 而那些明星级别的顶级流量自不必说.

所以一个优秀的开发者也需要学习运营和产品方面的相关知识, 需要了解用户画像, 需要了解人性, 这样在你怼产品的时候就会更有底气.

幸运的是, 你成为产品简, 产品成为你难, 所以有极强学习能力的你已经理解了, 掌握系统的重要之处. 可以试着做一些新媒体及产品, 并用技术实现, 你会发现实现自我的同时, 收获了更多的快乐.

你会理解为什么现在内容创业洗稿, 知识付费拆书的本质逻辑, 独立开发者可以站在更高的维度来看世界. 当然对于不熟悉的东西, 每走一步都异常艰难. 但我们需要被讨厌的勇气, 不是吗.

动手实践

看到这里, 你会感觉你需要学习的东西实在是太多, 终身学习是非常有必要的, 但学以致用才是本文推崇的价值观.

这个是一个非常简单的产品, 是在Youtube上看到的容量增肌计划随手实现的, 在技术角度没有任何的技术含量, 仅仅是一个ORM的数据库就可以实现, 但在产品的角度, 这其实已经是一个完整的App了, 虽然只有三个界面, 但内部逻辑已经产生了闭环, 并能够提供价值.

所以以后请不要写一些没有用的Demo, 而是转变视角想想新学的技术能够用在什么场景, 能够为什么人提供便利.

提升视野

现今世界最厉害的两个武器, 一个是技术, 一个是传播, 其实每个时代都一样, 一边是王权, 一边是宗教, 所以作为开发者, 技术是赖以生存的本能, 所以你需要提升的是你的传播的能力, 你可以想一下为什么会有人发公众号, 发微博, 发抖音, 发技术博客, 他们都是做慈善的吗? 当然不是, 其本质就是为了传播, 写这篇文章很大一部分原因就是希望更多读者关注, 同时也是为了锻炼自己的文笔, 更好的运营自己的新媒体, 创造属于自己品牌的价值.

但是你想要传播但是没有内容的输出是不可能的, 我能够洋洋洒洒写出那么多字, 也是我思考积累的过程, 现在写文字对我来说已经是思绪的流动, 写作技巧已经是非常次要的东西了.

和技术储备一样, 你也需要提升你的知识储备, 你需要了解这个世界正在发生的事情, 你就需要科学上网, 为了实现这个场景的需求, 你就会进行这方面的技术学习, 看, 技术选型是自然形成的, 并不需要你纠结, 有了场景, 一切看起来都是那么的简单, 当你的知识储备到了一定的阶段, 你就会感觉输出倒逼输入, 你就会有发表自己观点的欲求, 你可能也会从看博客到写博客的阶段, 而我想告诉你的是, 其实你可以靠技术轻松的进行变现.

当然变现并没有说的那么简单, 你需要学习的东西很多, 首先你需要了解经济, 市场的波动, 股票对公司的影响, 了解技术, 各种前沿技术和未来的趋势, 了解这些我到时推荐你看一些知识付费的东西, 比如得到里的万维钢和王煜全的专栏, 对提升你的视野很有帮助, 但如果你想要从中学习到知识, 还是别天真了, 老老实实的系统学习, 动手去做, 记住, 没有数据支撑, 纯靠思辨的产物不是知识.

原文地址

结语

以上就是这篇文章的全部内容了,希望本文的内容对大家具有一定的参考学习价值!
最后推荐个iOS高级交流群:624212887,有一个共同的圈子很重要,里面都是iOS开发,全栈发展,欢迎入驻,共同进步!

2019-01-16 15:47:08 u012581760 阅读数 703

移动端开发过程中大量使用H5、js,而这些web页面的调试在Xcode控制台中不好调试。
Safari浏览器来开启开发模式连接iPhone来调试app脸面的web页面了。
1、启用Mac上Safari的开发模式
Safari浏览器-偏好设置-高级 选中 在菜单栏中显示“开发”菜单
进入Safari的开发模式
2.启动iOS设备上的Safari的开发模式
设置- Safari浏览器 - 高级 - 打开JavaScript和Web检查器
3:调试iOS设备上的Web页面
这时候讲iPhone链接到mac上,打开Safari浏览器,运行手机app里面的web页面,在开发菜单中选择连接的手机选择选中index.html,找到调试的网页,就能在Safari里面调试了