自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ethan_LG的专栏

不骄,不躁,不作,正能量输出

  • 博客(115)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 React Native到底要不要用?劣势优势全面剖析

摘要:目前流行的两个智能手机操作系统 iOS 和 Android,各自为营,互不相通。一般情况下,开发一款APP需要两支队伍,分别针对 iOS 和 Android 平台进行开发。为了节约人力成本,有人就想到了跨平台开发解决方案。最近几年有多种跨平台开发方案相继出现,其中由 Facebook 推出的 React Native 框架是目前最完善、最受欢迎的一个。本文主要从React Native 的实现原理、优缺点剖析、技术选型的思考这三个方面进行阐述。一、 React Native简介...

2020-06-22 15:00:48 7627 1

原创 老鸟教你如何精确评估开发时间

一个程序员能否精确评估开发时间,是一件非常重要的事情。如果你掌握了这项技能,你在别人的眼里就会是这样:靠谱经验十足对需求很了解延期风险小合格的软件工程师正规军,不是野路子评估开发时间的重要性首先,在一个项目中,所有的环节都是承上启下的,上一个环节结束的时间节点正是下一个环节开始的节点。那么在一个项目或者一次迭代正式启动前,所有的环节都应该有个时间评估。以一次APP需求迭代为例,...

2018-11-10 22:31:54 15860 1

原创 react-native技术的优劣

前言从2017年初开始到现在,使用React-Native做项目已经一年了。我们做的是一款IM软件,嵌入在一个手机游戏平台的工程内部。之所以要采用react-native(后文简称RN)框架重构它,是因为现在游戏大厅上的所有游戏都是热更新的,为了也能让这个IM软件实现实时更新,减少IPA升级的次数,RN当然是不错的选择。经过一个同事将近一年的预研以后,2017年我们全面开启项目重构。奔着热...

2017-08-23 16:43:00 40902 12

原创 拳击:平凡生活中的精神火花

六点下班后,驱车四十多分钟回到家。一天的脑力劳动之后当然是有点累的,但今天计划好要去练拳击,所以稍作休息后,就收拾行李换上训练服,徒步走去小区附近的一家拳击馆。教练和早到的学员们围城一堆在聊着天,见到他们自然高兴,几句玩笑之后,便开始训练。跑步,热身,拉伸,空击,沙袋,打靶,实战,拉伸。一个半小时的训练,挥汗如雨,气喘吁吁,筋疲力尽,酣畅淋漓,妙不可言。让久坐不动的身体得到了充分舒展,整个人的精神头都起来了。

2023-08-29 09:23:41 132

原创 浪潮退去,程序员们该如何适应?

大概从 2010 年开始,忽如一夜春风来,千树万树梨花开,移动互联网开始蓬勃发展,程序员们迎来了春天。在过去的十多年里,程序员这个群体无疑是幸运的,享受了时代的红利,成为了高薪行业的代表。然而在最近的一年里,整体环境变得越来越差,互联网行业也是寒意肆虐。“裁员”和“失业”成了大家茶余饭后的高频词汇。有人说“当浪潮退去,才知道谁在裸泳”。我非常不认可这种说法,在当前的环境下,这无疑是将罪责强加于受害者身上。我们都是时代的产物,个人是无法对抗周期、风口和浪潮的。

2023-07-14 13:47:24 161

原创 趣谈代码中的注释

关于代码注释的争论可以说是无休止的,每个人都有自己的观点和偏好。在这场辩论中,唐僧、悟空、八戒和沙僧代表了不同的立场和观点。悟空可能确实阅读了《代码整洁之道》,但唐僧的总结观点更容易被大众接受。根据《代码整洁之道》的理念,注释被认为是一种不得已的做法,用来弥补代码表达能力的不足。如果代码能够清晰地表达意图,就没有必要写注释。我认同这个观点的方向,但也认为其中存在一些过于绝对和理想化的成分。尽管我们追求编写能够自我解释的代码,但在现实情况中,总会遇到一些复杂的业务规则、算法或特殊情况。

2023-06-02 11:34:07 487

原创 React Native 迁移的阵痛

做技术迁移,是一项高风险、高难度、长周期的事情。高风险体现在,如果实施过程中困难超出预期,或遇到难以逾越的技术难关,很容易陷入进退两难的境地,对企业来说,这算是一场灾难。高难度体现在,它前期需要良好的规划能力和风险预估能力,中期需要较强的技术实施能力。这中间必定会经历一段“阵痛期”,通过就成功,不通过就夭折。长周期,做一次完整的技术迁移,一般以年为时间度量单位,最简单的技术迁移也得以季度为单位,当然这也取决于项目的规模。最重要的一点,是企业有做技术迁移的决心,能够给与人力和财力的支持。

2023-05-09 09:06:16 487 1

原创 回顾会议中的 5 种坏味道

敏捷开发中,Retro 回顾会议是很重要的一个环节。其初衷是,通过回顾前一个 Sprint、找出需要改进的方面、制定改进计划,使得 Scrum 团队在下一个 Sprint 中更高效更愉快。然而我发现我们经常会把 Retro 搞成低效率低收益的会议,甚至发展成夸张的“夸夸大会”,充满负能量的“吐槽大会”,或者让人压抑的“检讨大会”。本文通过列举一些常见问题和注意事项,希望能帮助大家更好地运用 Retro 提升团队效率。

2023-03-28 15:24:21 357

原创 SOLID 设计原则 (有点长但很透彻)

写了这么多年代码,你真的了解 SOLID 设计原则吗?本文试图通过最通俗的语言、最典型的示例,带你了解其中的奥秘,并且把它刻进你的脑子里!

2022-12-18 15:38:26 1318 2

原创 React Native 工程基础建设

本文总结 React Native 工程层面的基础建设,包括很多工具选用、规范制定、技术方案选择。对于将要新启 RN 项目的同学们,本文可以作为你的一部分参考。

2022-07-01 08:34:08 783 3

原创 React Native 技术选型分析

所有的技术选型和框架选择,都应该基于项目的实际情况,从多方面去权衡利弊,而不仅仅是看哪个框架或语言更火、更酷炫。

2022-07-01 08:27:32 562 1

原创 西安,有哪些值得去的外企互联网公司?

西安一大波外企向你走来

2022-04-13 15:57:51 14151

原创 如何科学预估开发时间

一个开发人员能否精确评估开发时间,是一件非常重要的事情。如果你掌握了这项技能,你在别人的印象中会大大加分。这也是专业度的体现。

2022-04-11 13:23:41 5004

原创 Alamofire请求重试机制和更新token

1. 应用场景发送网络请求时,一些请求失败后需要自动重试。大多数情况下,在重试前需要做一些操作,比如更新参数,更新 token 等。本文对应的真实场景: 发送请求 -> 返回401 -> 更新 token -> 重新请求如果不知道 Alamofire 提供了 retrier 机制,你很有可能想到在每一个请求的失败返回中手动重试,千万不要。下面详细介绍怎样利用 Alamofire 便捷地实现重试。2. Alamofire 的 RequestInterceptorRequestInt

2021-08-20 16:54:20 1737 6

原创 推荐一款全自动JSON转Model的工具JSONAccelerator

这是一款 Mac 上运行的开发工具不用手写一行代码支持 Objective C, Java, Python直接生产对应的 Model 文件Github 地址2021-02-01 修复了选项板显示不全的问题。

2021-02-01 08:31:55 541

原创 Redux 使用原则

一、你可能真不需要Redux首先明确一点,Redux 是一个有用的架构,但不是非用不可。事实上,大多数情况,你可以不用它,只用 React 或 React Native 就够了。曾经有人说过这样一句话:“如果你不知道是否需要 Redux,那就是不需要它。”Redux 的创造者 Dan Abramov 又补充了一句: “只有遇到 React 实在解决不了的问题,你才需要 Redux 。”(以上摘自阮一峰老师的博客:Redux 入门教程(一):基本用法)我是一位移动端开发者,用 React Nativ

2021-01-11 14:21:25 515

原创 iPhone 12 启动图适配 (黑屏问题,已解)

Xcode 昨天发布了12.1 版本。里面有了iPhone 12 系列模拟器。跑了一下之前的项目,启动图(LaucnScreen)是黑屏。分别百度和谷歌了一下 iPhone 12 适配,均没有相关讨论。在这里起个话题,希望大家能一起在底下评论区讨论。我们启动图用的是 Storyboard,用一整张背景图片作为启动图,用ImageSet承载不同屏幕尺寸的对应的图片。启动黑屏肯定是因为没有找到对应屏幕尺寸的图片。但是手动给Contents.json加对应的尺寸,ImageSet会报警告。Conten

2020-10-22 10:56:58 5948 10

原创 JavaScript 如何安全删除数组元素?10种方法供你参考

目录1. 删除一个尾部元素2. 删除第一个元素3. 删除一个或多个元素4. 删除指定元素5. 条件过滤删除6. 使用Lodash第三方库进行删除操作7. 自己封装一个删除指定元素的函数9. 使用Delete Operator进行显式删除10. 清空重置数组总结1. 删除一个尾部元素通过改变数组长度删除一个尾部元素var ar = [1, 2, 3, 4, 5, 6];ar.length = 4; // set length to remove elementsconsole.log( ar );

2020-07-07 13:15:16 844

原创 The review of your app is taking longer than expected 解决方案

最近不少开发者在提交 App Store 审核时被拒,拒绝原因齐刷刷:Other - OtherHello,The review of your app is taking longer than expected. Once we have completed our review, we will notify you via Resolution Center.If you would like to inquire about the status of this review, yo

2020-06-15 15:32:52 10164 5

翻译 RN解决警告:VirtualizedLists should never be nested inside plain ScrollViews

React Native 开发过程中,如果我们把 FlatList 或者 SectionList 控件放在 ScrollView 中的haul,调试的时候会有如下黄盒警告:VirtualizedLists should never be nested inside plain ScrollViews with the same orientation- use another VirtualizedList-backed container instead.这个警告指明了问题,但是没有给出错在哪,也

2020-06-03 16:00:58 10711 4

翻译 React Context介绍和使用

目录我是前言为什么要用(Why)使用方法(How)什么情况下使用(When)原文链接:https://www.robinwieruch.de/react-context我是前言React Context是个很强悍的功能。如果你的应用在逐步增大,试试它准备错。许多著名的第三方库也在使用它,例如Redux。当你的应用如果控件层级很多,有时候需要把Props逐级传递,尤其是把一个Props从顶层...

2019-12-12 18:47:55 721 1

原创 Xcode升级11.1后 altool报错

升级Xcode之后,用Jenkins打包上传工程,最后一步上传IPA的时候报错:altool: command not found我用的是altool工具,命令:altool --upload-app -f $"path"stackOverflow和官网找了一圈,都说新版Xcode去掉了altool工具。绝望之余,我继续探索,终于在一个不太起眼的地方找到了可疑答案,经过尝试,成了!...

2019-10-12 17:25:27 2085

原创 swift中的可选类型(?)、强制解析(!)、自动解析、可选绑定、可选链

1. 前言对于一直用OC的iOS开发者来说,swift的可选类型可算是个新东西。刚开始接触swift的时候,(?), (!), (??)这些符号搞得我好晕,所以我觉得有必要整理出来,让更多的人不晕!2. 可选类型2.1 啥叫可选类型?就是Option类型,用(?)表示。被它修饰的变量,意味着这个变量可能有一个值,也有可能没值 。(让我想起了薛定谔的猫

2019-06-22 14:32:04 2026

翻译 Apple Pay编程指南(6) -沙盒测试

文章目录Apple Pay 系列文章是苹果官方文档的中文翻译,这将是最详尽最规范的说明。原文链接:苹果开发文档明天翻译,原文请看链接,不难。

2019-05-14 17:48:06 1967

翻译 Apple Pay编程指南(5) - 处理付款结果

文章目录Apple Pay 系列文章是苹果官方文档的中文翻译,这将是最详尽最规范的说明。原文链接:苹果开发文档处理付款结果分为以下几个步骤:将支付信息连同处理订单所需的其他信息发送到服务器验证支付数据的散列和签名解密加密的支付数据向支付处理网络提交支付数据提交订单到您的订单跟踪系统您有两个处理支付的选项:您可以利用支付平台来处理支付,或者您可以自己实现支付处理。支付处理...

2019-05-14 17:47:40 878

翻译 Apple Pay编程指南(4) - 支付授权

文章目录通过代理方法更新你的地址和金额支付授权后会生成一个token处理完成之后再代理方法中dismiss控制器Apple Pay 系列文章是苹果官方文档的中文翻译,这将是最详尽最规范的说明。原文链接:苹果开发文档支付授权过程是支付授权视图控制器及其代理之间的合作工作。支付授权视图控制器做两件事:1. 让用户选择支付请求所需的账单和发货信息,2. 让用户授权支付。当用户与视图控制器交互...

2019-05-14 17:47:10 761

翻译 Apple Pay编程指南(3) - 创建支付请求

文章目录判断是否可以支付网页接口桥接支付请求包含的地区和货币信息支付请求包含的支付清单Shipping Method支付处理机制的支持设置运输和计费信息设置付一段代码Apple Pay 系列文章是苹果官方文档的中文翻译,这将是最详尽最规范的说明。原文链接:苹果开发文档支付请求是PKPaymentRequest类的实例。付款请求由摘要列表组成,这些摘要向用户描述支付的内容、可用的送货方法...

2019-05-14 17:46:33 1179

翻译 Apple Pay编程指南(2) - 环境配置

文章目录注册merchant ID创建Payment Processing certificateApple Pay 系列文章是苹果官方文档的中文翻译,这将是最详尽最规范的说明。原文链接:苹果开发文档merchant ID用于鉴别应用是否可以进行Apple Pay,与merchant ID相关联的Payment Processing certificate 用于加密支付信息。所以,在您...

2019-05-14 17:45:54 1316

翻译 Apple Pay编程指南(1) - 简介

这里写自定义目录标题前言Apple Pay说明如何测试Apple Pay交易?Apple Pay 系列文章是苹果官方文档的中文翻译,这将是最详尽最规范的说明。原文链接:苹果开发文档前言Apple Pay是一种移动支付技术,它为用户在iOS应用程序、watchOS应用程序和Safari网站上支付真实世界的商品和服务提供了一种简单而安全的方式。本编程指南讨论iOS应用程序中的Apple ...

2019-05-14 17:45:24 971

原创 Font Awesome在iOS中的使用和注意事项

1. 什么是Font Awesome?简单说,它是一套图标字体库。 在iOS中用UILabel显示图标,就不用UI设计师切图了。究其原理,实际Font Awesome就是一套字体,只是显示出来的样子不是我们常见的文字。通过Unicode去显示实际样式,和汉字显示是一样一样的。2. Font Awesome在iOS工程中使用2.1 官网下载字体库要在iOS工程中使用,首先得在官网上下载对应...

2019-04-13 11:45:10 1288

原创 敏捷开发是个啥

「齐齐兽」公众号授权转载 原文连接:原文连接今天来篇正经的,从软件工程的角度来聊一聊敏捷开发模式,文章分两部分:第一部分通过举例和对标其他行业聊聊软件开发模型的发展演进。第二部分聊聊敏捷的核心思想。敏捷开发是互联网界比较流行的软件开发模式,产品、技术、项目管理、运营、美术和测试等各岗位对其理解后都大有益处,运用得当可以事半功倍。现在信息爆炸、良莠不齐,网上很多讲敏捷的文章,...

2019-03-31 11:41:01 2823 2

原创 从程序员到技术管理--这半年我经历了什么

角色转变自从7月份加入了当前的创业公司,承担起了iOS开发和技术管理任务。说是技术管理,其实就只带了五六个人,整个公司不到20人,谈不上什么专业管理,倒更像个“催活的”。不像大公司的leader ,我更偏向于细化任务,制定明确KPI,跟踪进度。这个角色转变,让我看到了另外一个世界。重新看待专业素养以前,我把“专业素养”和“专业技能”混为一谈。认为一个有较多的工作经验和能实现复杂的功能的工程...

2019-01-17 11:36:18 942 4

原创 runtime消息分发-OC方法调用原理

概述你一定听说过“运行时是 Objective-C 的一个特色”,也经常在写方法调用。但你知道方法调用具体是个什么过程不?秉承知其所以然的优良传统,我们就花点时间来扒一扒runtime和方法调用的原理。runtime赋予OC的动态特性Object-C因为有了强大的runtime而成为一门动态语言,其动态性体现在:动态绑定,动态加载,动态类型。a.动态绑定:静态语言的函数调用是在编译过程中就...

2019-01-08 19:33:39 1001

原创 算法-Longest Common Prefix【swift4实现】

原题连接:https://leetcode.com/problems/longest-common-prefix/description/解决:func longestCommonPrefix(_ strs: [String]) -> String { if strs.count == 0 { return "" } else if...

2018-12-12 15:11:34 266

原创 swift4-函数的函数实际参数标签和形式参数名

前言对于初学者来说,形式参数、实际参数标签、形式参数名 是三个很绕口的名词,阅读文档的时候容易被搞晕。相信你看完本文就会彻底明了。关系形式参数 = 实际参数标签 + 形式参数名即:每一个函数的 形式参数 都包含 实际参数标签 和 形式参数名。实际参数标签:用在调用函数的时候(在调用函数的时候每一个实际参数前边都要写实际参数标签)。形式参数名:用在函数的实现当中注意:swift默认情况...

2018-11-08 17:47:56 1010

原创 iOS动画曲线详解(UIView Animation Curves)

前言iOS应用中比较性感的动画,一般都不是匀速的。通俗的描述有:先快后慢,先慢后快,弹簧式的,不规则运动的,等等。本文针对这几种情况进行分解,内容包括:...

2018-05-20 20:44:37 8215

原创 iOS面试经历感触和市场现象(2018)

开篇啰嗦在上家公司呆了两年半,2018年春节后开始面试,惊奇地发现,世界变化好快!和两年前的面试感觉完全不同,整体来说是要求高了,底层原理、手写算法、性能优化等等是主要面试点。 但同时不得不吐槽,一些所谓的大公司,面试方法有问题,面试体验很不好。 以下是对面试的总结,以及对将要换工作的小伙伴的一些建议。考点分类iOS基础不管是刚毕业,还是有几年的开发经验,常用的基础...

2018-03-19 13:22:45 4453 3

原创 iOS面试题-RunLoop

开篇iOS面试中,runLoop,runtime,内存管理,性能优化等更底层更的问题越来越受面试官的青睐,这确实是考察一个程序员知识深度和自主钻研能力的基本手段。虽然大多数程序员在开发过程中,这些知识点用的并不多,但是掌握这些知识,会帮助你写出更优秀的代码,避免一些“莫名其妙”的坑。想成为一名真正优秀的工程师,确实应该在相应的领域不断深挖,才能到达大多数到不了的高度。 此篇讲讲面试中runL...

2018-03-19 10:24:40 1762

原创 算法-快速排序

/* * 快速排序(C实现) 1.i =L; j = R; 将基准数挖出形成第一个坑a[i]。 2.j--由后向前找比它小的数,找到后挖出此数填前一个坑a[i]中。 3.i++由前向后找比它大的数,找到后也挖出此数填到前一个坑a[j]中。 4.再重复执行2,3二步,直到i==j,将基准数填入a[i]中。 */void quick_sort(int s[], int l, int r)...

2018-02-26 10:30:20 304

原创 算法-TwoSum

题目:Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use the same...

2018-02-08 09:49:07 336

mac版屏幕录制软件(gif)

一款好用的屏幕录制软件,录制框大小可调,录制成gif文件。可用于操作演示录制。

2015-09-18

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除