野火🔥

RN学习5——QDaily iOS app中通信和热修复实践

因为我们还用React Native 0.30版本,以后肯定会换最新版本,所以着急炒炒这份冷饭,总结总结使用经验。 上一篇介绍了Android的一些React Native应用中Native部分的开发,这篇主要在这个基础上继续介绍下iOS部分。iOS坑会少一点。 该文章为系列文章,之前的文章为RN学习1——前奏,app插件化和热更新的探索,RN学习2——客户端开发者的一些准备工作,RN学习3——集成进现有原生项目,RN学习4——QDaily Android app中通信和热修复实践。 一、先说针对hot fix的支持启动时请求JSBundle更新直接看流程图,此类用来管理JSBund...

QDaily app流量和文章打开速度优化--js和css的加载逻辑

本文属于“好奇心日报app的流量和文章打开速度优化”系列文章第二篇,主要介绍为实现文章尽快的打开速度而进行的js和css的预载和缓存以及重用的逻辑。 整篇代码均为Objective-C,Android可以参考书写。 前言好奇心日报所有文章都是自产,js和css文件在所有文章中都使用的一套进行逻辑和样式处理。在每次前端同事修改了js或者css代码后,会给该文件直接生成一个64位的hashcode附在其后,以区分不同版本,用于浏览器端更新使用,例如: http://app3.qdaily.com/assets/app3/common-bc6aa258d92609720eb97f34f86...

微信上最近很火很炫的广告是怎么实现的

首先致敬微信团队,再一次引领了移动互联网产品的发展方向,给手机端广告再开了一扇门! 感谢曾经在微信工作的经历,让我更理解互联网 如果文章有任何不妥的地方,请直接邮件chaisong.cn@gmail.com 如果你喜欢我的文章,可以直接访问我的博客,欢迎批评指正。 一、广告介绍不清楚的朋友先看微信团队对这个广告的介绍:朋友圈原生推广页广告随奥运上线 里约奥运第一天,微信广告团队再放大招,...

【iOS&Android】RN学习3——集成进现有原生项目

在做了短暂的技术调研和分析之后,我决心将RN和现有的QDaily项目进行集成,并替换掉其中的广告效果展示页面。 本文开发环境为Mac,在React Native 版本为0.30。同时RN仅仅作为插件形势集成到原有Native工程中,因此主要还是一个Native工程而非RN工程 而且,本文的前提是你已经在本地配好了iOS开发环境或Android开发环境,也就是说,你起码已经是一个Android开发者或者iOS开发者。 一、必备的环境配置先安装node.js,可以下载pkg包,也可以命令行安装: brew install node 然后安装React Native的命令行工具(react...

【Android&iOS】QDaily基于WebP的流量优化实践

本文属于“好奇心日报app的流量和文章打开速度优化”系列文章第一篇,主要介绍基于图片压缩的流量优化。流量优化对于一个app来讲意义非常重大,能节约用户的流量,节约用户的存储空间,而且能有提高网络请求的回包速度,提高app的速度。因此流量优化历来都是app的优化重点,而且是一个持续优化的点。 QDaily是一个多图片的新闻类应用,采编喜欢上传gif图来提高内容的表现力,这也使得流量消耗非常大。粗略估计,用户在浏览完第一页所有新闻(共48篇),会消耗流量达100m,其中98m为图片,这里值得优化的空间非常大。 针对这种情况,我们先后使用的优化包含:wifi条件下预载所有文章、图片和js、c...

每日阅读20160726

本月事情多,师妹的好多事情,还有开发工作。深刻研究了RN的使用,并应用在实践中;极限的流量优化,将QDaily客户端的消耗流量减少了75%。这些都开始囤积文章,稍后慢慢分享出来。 水一些本月学习的东西 1、React-Native For Android 环境搭建及踩坑android引入RN的基础知识。 2、用 Jenkins 搭建 iOS/Android 持续集成打包平台已经在本机上进行的使用,未来会在编译服务器部署。 3、Open-Source iOS Apps若干iOS开源项目,都是老外的,值得学习研究。 4、关于 iOS 10 中 ATS 的问题今年估计所有app都要面临全部...

每日阅读20160627-30

这几天先用swift把一键上传七牛的代码写好了,学着了一些osx的开发技巧,oc swfit的混编,swift的闭包,还有swift最让新用户崩溃的半弱类型(? or !)。 1、Swift 范的 CGRect、CGSize 和 CGPoint先来个轻松的。规范下swift的书写,看完不累,而且貌似有些收获。程序员要有代码洁癖。 一个小技巧,之前用scheme也达到了类似的效果,不过没有这么彻底。主要区分在预编译指令这里的区别。不过对于跳转的app url scheme在修改了bundleid后会出现问题。例如跳转微信授权和分享后会,会回不到当前app。大多时候都是很方便的。 2、Q-I...

使用iOS APP的Build Configuration区分开发和生产环境

前两天看文章使用 Xcode 的 Target 区分开发和生产环境,感觉这个虽然是一种区分开发和生产环境比较强大的方法,但也有比较轻量级的,下面就分享下QDaily采用的配置Build Configuration方案。 区分测试环境和生产环境的上面的链接已经说了:区分统计数据、区分crash log、区分server地址、区分本地数据库… 每个工程默认会有两个Build Configure,即debug和release,我们就在这里做文章,增加一个releaseBeta版本,用来打包内部测试环境版本。 QDaily在这里主要区分了app name,app icon,app bundl...

移动端开发好文20160626

1、Android App 不死之路 软件开发者要有自己的节操,有时候为了推送需要,有一个非常小的进程常驻后台还可以接受。国内安卓生态就是被这种自以为nb的开发毁掉的。不过技术本身没有错,可以看看底层实现。不过这类技术可用性不高。 2、ES6 有什么新东西? RN开发的基础知识储备。读了这篇文章,感觉模板字符串语法,胖剪头语法和class的引入这3处很有意思,值得关注;对map和array的遍历让我对js这个语法感觉充满了神奇… 还有,需要更多的理解其中this关键字的可用位置。。。要继续持续关注! 3、逃离北上广,我们过得不好,但也不坏 分享个非技术类的,庆幸我在互联网行业。庆幸我...