- 博客(160)
- 资源 (1)
- 收藏
- 关注
转载 Swift 与 Kotlin 的简单对比
一位国外的程序员认为 Swift 的语法与 Kotlin 相似,并整理了一些 Swift 和 Kotlin 的对比,下面是一些例子,大家不妨也看看。BASICSHello WorldSwiftprint(“Hello, world!”)Kotlinprintln(“Hello, world!”)变量和常量Swiftvar myVariable = 42myVariable = ...
2019-05-31 16:13:13 865 1
原创 Swift open public等修饰符详解
swift 中关于open ,public ,internal,fileprivate,private 修饰的说明open:用open修饰的类可以在本某块(sdk),或者其他引入本模块的(sdk,module)继承,如果是修饰属性的话可以被此模块或引入了此某块(sdk)的模块(sdk)所重写public:类用public(或级别更加等级更低的约束(如private等))修饰后只能在本模块(...
2019-05-30 17:25:45 7616
原创 Flutter之StatelessWidget和StatefulWidget的详细使用
状态是在构建widget时可以同步读取的信息,或者在widget的生命周期中可能更改的信息,在Flutter中如果要管理状态需要用到 StatefulWidget。什么是StatelessWidget?Flutter中的StatelessWidget是一个不需要状态更改的widget - 它没有要管理的内部状态。当您描述的用户界面部分不依赖于对象本身中的配置信息以及widget的BuildC...
2019-05-28 10:42:13 4438
原创 Flutter路由之Navigator详解
含义:Navigator 继承自 StatefulWidget,它也是小组件,它有很多相关静态函数,可以帮我们达到页面跳转和数据交互的功能:push 将设置的router信息推送到Navigator上,实现页面跳转。of 主要是获取 Navigator最近实例的好状态。pop 导航到新页面,或者返回到上个页面。canPop 判断是否可以导航到新页面maybePop 可能会导航到新页面...
2019-05-28 10:20:07 6101
原创 CGContextRef详解
1.1背景知识Graphics Context是图形上下文,可以将其理解为一块画布,我们可以在上面进行绘画操作,绘制完成后,将画布放到我们的view中显示即可,view看作是一个画框.Quartz提供了以下几种类型的Graphics Context:Bitmap Graphics ContextPDF Graphics ContextWindow Graphics ContextLay...
2019-05-23 10:03:19 873
原创 简约直接好用的正则表达式
最佳解决思路至少八个字符,至少一个字母和一个数字:“^(?=.[A-Za-z])(?=.\d)[A-Za-z\d]{8,}$”至少八个字符,至少一个字母,一个数字和一个特殊字符:“^(?=.[A-Za-z])(?=.\d)(?=.[@@@!%#?&])[A-Za-z\d@@@!%*#?&]{8,}$”最少八个字符,至少一个大写字母,一个小写字母和一个数字:“^(?=.[...
2019-05-22 15:19:08 507
原创 几行代码搞定iOS开发引导页
https://github.com/mamaral/OnboardOnboard:一个只用几行代码就可轻松创建 它是一个美丽的和迷人的iOS框架。iOS开发之引导页框架介绍使用1、可以用CocoaPods 下载 pod‘Onboard’2、可以直接下载pro,然后拖进项目使用每个onboarding实例包含两个主要组件 - 背景页和内容页。背景包括静态背景图像/视频,页面控制和跳过...
2019-03-29 15:02:39 3190
原创 iOS load和initialize的区别
可能有些童鞋还不清楚load和initialize的区别,下面简单说一下:首先说一下 + initialize 方法:苹果官方对这个方法有这样的一段描述:这个方法会在 第一次初始化这个类之前 被调用,我们用它来初始化静态变量.initialize方法的调用时机,当向该类发送第一个消息(一般是类消息首先调用,常见的是alloc)的时候,先调用类中的,再调用类别中的(类别中如果有重写);如果该类只...
2019-03-27 17:49:30 272
原创 iOS -录音-音频的拼接剪切以及边录边压缩转码
总体内容1、录音实现2、录音的编辑 (拼接音频:可以设置多段,音频的剪切:按照时间段剪切)3、lame静态库进行压缩转码一、录音实现1.1、导入 AVFoundation 框架,多媒体的处理, 基本上都使用这个框架#import <AVFoundation/AVFoundation.h>1.2、使用 AVAudioRecorder 进行录音,定义一个JKAudioTool...
2019-03-27 16:02:48 1295
原创 Block全解
Block:带有自动变量(局部变量)的匿名函数。它是C语言的扩充功能。之所以是拓展,是因为C语言不允许存在这样匿名函数。1.1 匿名函数匿名函数是指不带函数名称函数。C语言中,函数是怎样的呢?类似这样:int func(int count);调用的时候:int result = func(10);func就是它的函数名。也可以通过指针调用函数,看起来没用到函数名:int result...
2019-01-11 13:59:35 1346
原创 Android快速开发-常用三方包集成大全
一、官方支持库 compile ‘com.android.support:appcompat-v7:26.1.0’compile ‘com.android.support:support-v4:26.1.0’compile ‘com.android.support:recyclerview-v7:26.1.0’compile ‘com.android.support:support-...
2018-06-15 10:21:20 668
原创 GreenDAO简单使用和升级配置
GreenDAO是一款非要流行的Android平台上的数据库框架,性能优秀,代码简洁;是一个将对象映射到SQLite数据库中的轻量且快速的ORM解决方案。GreenDAO 优势 1、一个精简的库 2、性能最大化 3、内存开销最小化 4、易于使用的 APIs 5、对 Android 进行高度优化 首先先添加相关配置文件,依赖库compile ‘org.greenrobot:gre...
2018-05-29 17:52:21 291
原创 开发团队项目管理那些事儿
16年初,我怀揣着实现一个人生小目标的梦想加入到一家初创公司,希冀能见证公司产品从0到1,从1到10,融资从A到C。可是半年后,虽然产品从0到1是有了,但由于运营模式的限制,从1到10走的很难,用户规模上不去,融资也是没有影子。我开始焦虑起来,这样下去,我要当上总经理,出任CEO,迎娶白富美的人生小目标,可是要萎掉的啊。于是,那时还是程序猿的我,渐渐”多事”起来:一会跑到产品经理那里...
2018-05-08 09:48:04 790
原创 Android性能优化之利用Rxlifecycle解决RxJava内存泄漏
Android性能优化之利用Rxlifecycle解决RxJava内存泄漏 前言: 其实RxJava引起的内存泄漏是我无意中发现了,本来是想了解Retrofit与RxJava相结合中是如何通过适配器模式解决的,结果却发现了RxJava是会引起内存泄漏的,所有想着查找一下资料学习一下如何解决RxJava引起的内存泄漏,就查到了利用Rxlifecycle开源框架可以解决,今天周末就来学习一下...
2018-05-04 16:31:23 1279
原创 改变MenuItemView的字体颜色
遇到这个问题的时候网上搜了好多方法,逐一试用都不怎么好使...废话不说直接上代码:<activityandroid:name=".business.collection.CollectionListActivity"android:screenOrientation="portrait"android:theme="@style/AppThemeCustomTo
2017-12-08 11:39:23 636
转载 2017 上半年最酷,最受欢迎的30 个 Android 库
原文:https://mp.weixin.qq.com/s?__biz=MzI3MDE0NzYwNA==&mid=2651435739&idx=1&sn=e88e01d3f01498f4517b98ee171ecfc1&chksm=f1289ba0c65f12b6ba2e51a07c55da39cd61d6e2e9050be7ab7ecccb61820e24bc069bd4e1ec&mpshare
2017-06-20 16:22:22 505
转载 android studio生成签名文件,以及SHA1和MD5值
一、生成签名文件1.点击菜单栏中的Build的。 2.弹出窗体,如下图,选中Generate Signed APK,并点击。 3.弹出窗体,如下图。 4.点击Create new…按钮,创建一个签名文件。选择keystore保存的路径,填写keystore和key密码。ketystore密码和key密码在后面会用到。其他信息不是很重要,按实际情况写就好。
2017-06-01 11:53:17 1318
原创 阿里ARouter使用及原理详细介绍
什么是路由跳转?为什么要用路由跳转?路由跳转:web开发框架一般支持用户设置路由表,让表内的页面/层级,产生可互相跳转,转发等行为(如果理解不正确请指出)要用的理由1: 项目大了就无法获取到其他包的Activity.class了要用的理由2: 逻辑清晰,比较语义化,清楚的知道跳转路径和目的地要用的理由3: 不单单可以应用于普通Activity还可以与浏览器做一些业务逻辑。(如果有遗漏请指出)
2017-05-26 17:55:50 12046 1
原创 IOS纯代码实现AutoLayout适配多屏幕
关于AutoLayout,最早从iOS6开始引入使用。主要功能是使用约束,对视图进行相对布局,以适应不同屏尺的变换。网上大量的资料都在介绍xib和storyboard,如何使用AutoLayout,说纯代码使用AutoLayout进行UI布局的越来越少。对于我这个习惯了代码UI布局的人,写个备忘:AutoLayout是什么? 使用一句Apple的官方定义的话 AutoLayout是一种基于约
2017-05-26 09:54:09 1944
原创 从UIWebView到WKWebView
8.0之前都是UIWebView,以后苹果官方鼓励用WKWebView,本人建议也是用WKWebView,因为除了功能更加强大,性能和内存都会好很多,网上也有兼容两者的三方比如IMYWebView等。1.UIWebView:@interface QXWebViewController ()@property (weak, nonatomic) IBOutlet UILabel *lable;@pro
2017-05-25 17:27:43 1677
原创 iOS 从0到1搭建高可用App框架
**最近在搭建新项目的iOS框架,一直在思考如何才能搭建出高可用App框架,能否避免后期因为代码质量问题的重构。以前接手过许多“烂代码”,架构松散,底层混乱,缺少规范,导致团队开发时代码风格迥异,清晰的项目结构和良好的代码规范是保证产品质量的关键,下面分享一下我的架构思路。 架构图:**架构原则:易读性、易维护性、易扩展性。 一、思考做好一件事,花在思考上的时间应该多于执行。首先根据产品需求和设
2017-05-25 14:15:00 367
原创 IOS 设备信息和系统信息获取大全
-(void)deviceInfos{NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];// app名称NSString *app_Name = [infoDictionary objectForKey:@"CFBundleDisplayName"];// app版本NSString *app_Versi
2017-05-24 11:31:07 1187
原创 Anko:Android 代码动态布局的新方案
源码地址:https://github.com/Kotlin/ankoAnko版本的 hello world :verticalLayout { val name = editText() button(“Say Hello”) { onClick { toast(“Hello, ${name.text}!”) } } }上面的代码创建了一个Butt
2017-05-23 15:15:32 2934
原创 单元测试从Mockito到PowerMock再到Robolectric的详细解析
单元测试从Mockito到PowerMock再到Robolectric
2017-05-18 15:44:31 4640
原创 UISegmentedControl使用最详细的解析
初始化的方法//一次性初始化多个control,items可以是图片或者是文字array,系统会自动控制每个单元的大小 //也可通过正常View的初始化进行 - (instancetype)initWithItems:(NSArray *)items;事件添加//通过UIControl的方法来设置,当改变segments的时候通过事件UIControlEventValueChanged,
2017-05-16 14:07:42 956
原创 java并发包里CountDownLatch的使用详解
A synchronization aid that allows one or more threads to wait until a set of operations being performed in other threads completes.这是官网对此类的作用的解释:同步延迟,允许一个或多个线程等待一个线程完成后,他们才开始执行。这对我们同步开启了好几个线程但是我们,想按照一
2017-05-12 09:28:09 845
原创 单元测试Robolectric的使用详解
Robolectric通过实现一套JVM能运行的Android代码,然后在Junit test运行的时候去截取android相关的代码调用,然后转到他们的他们实现的代码去执行这个调用的过程。不用依赖真实的 Android 环境中运行(模拟器或者真机)Robolectric主要适用于UI的测试,比如Activity,Fragment,一些页面操作的测试场景,采用Shadow的方式对Android中的组
2017-05-11 18:04:20 2846
原创 单元测试神器Mockito详细剖析
Mockito的核心原理就是通过Mock出来一个影子对象,然后拦截元对象的所有行为,很像我们开发过程中的挡板的作用,但是又比它要强大的多的,比如:我们想验证Modle类中的NetManager对象的相关行为,当我们调用Modle的相关行为的时候,就会触发NetManager的相关行为,所以我们测试的时候要把NetManager给mock然后把这个经过mock的对象设置给Modle就可以了,这点很重要
2017-05-11 17:32:54 1183
原创 最详细的IOS NSNotification通知解析
太多理论性的东西就不说了,就说一个疑惑,三个个主意点。一个疑惑就是我们在UIViewController中注册的通知观察者,不需要我们在UIViewController中手动移除,系统也会帮助我们自动移除,如果需要验证这个问题,你只需要扩展UINotificationCenter然后重写它的removeObsever:函数就可。三个注意点:1.我们如果要想移除通知观察者一定要指定特定的通知名字,要么
2017-05-08 17:31:51 672
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人