移动开发

自定义Chronometer实现定时器

前言 在Android开发过程中,计时控件是经常回使用到的,在Android控件库中有一个能快捷实现计时功能的控件,它就是Chronometer,今天我们基于它自定义实现一个方便调用的计时控件TimeChronometer。 今天涉及知识有: Chronometer常用方法 TimeChronometer在Activity中使用 效果图和项目结构图 TimeChronometer源码 一

一文搞懂Glide,不懂来打我

1、什么是Glide? 1.1、官方描述 Glide是一个快速高效的Android图片加载库,注重于平滑的滚动。Glide提供了易用的API,高性能、可扩展的图片解码管道(decode pipeline),以及自动的资源池技术。 Glide 支持拉取,解码和展示视频快照、图片和GIF动画。Glide的Api灵活易用,开发者可以插入和替换成自己喜爱的任何网络栈。默认情况下,Glide使用的是一个

iOS获取设备唯一标识和UUID

UIDevice.current.identifierForVendor?.uuidString 以上获取uuidString的方法,每次重启都会改变。 但是项目的要求是不变,并且删除app 只有也有有保留的需求。显然这个无法满足我们的需求。 使用KeyChain解决 keychain(钥匙串)存储在iOS系统中,并且恢复iPhone会使keychain的内容也恢复.但是删除App是不会影响k

Android Jetpack系列之MVVM使用及封装

Android开发架构 如果开发过程中大家各自为战,没有统一规范,久而久之,项目代码会变得混乱且后续难以维护。当使用统一的架构模式后,有很多的好处,如: 统一开发规范,使得代码整洁、规范,后续易于维护及扩展 提高开发效率(尤其在团队人员较多时) 模块单一职责,使得模块专注自己内部(面向对象),模块间解耦 总之,开发架构是前人总结出来的一套行之有效的开发模式,目的是达到高内聚,低耦合的效果,使

RE: 从零开始的车载Android HMI(三) - SurfaceView

1.前言 从零开始的车载Android HMI是一个系列性的文章,目的在于展示一些在Android手机应用开中不常用,但是在车载应用开发中较为常用的一系列Android HMI 组件,希望能够帮助初入车载应用开发的同学了解车载应用开发过程中常用的各种UI 组件。 RE: 从零开始的车载Android HMI(一) - Lottie RE: 从零开始的车载Android HMI(二) - Widge

SnapKit源码分析

SnapKit源码分析 Snapkit版本:5.6.0 1. 给谁做约束 ConstraintView:对iOS而言是UIView,对macOS而言是NSView #if os(iOS) || os(tvOS) public typealias ConstraintView = UIView #else public typealias ConstraintView = NSV

Android Xml转换为View过程

前言: Android布局文件Xml,通过setContentView(@LayoutResint layoutResID)或者LayoutInflater.from(context).inflate(int ResID)转换为Java对象,开发工具Android Studio 提供的预览功能,开发过程中界面和业务可以并行开发,提高了开发效率。以下分析过程是基于 Android API 25 Pl

Axios知识点学习

axios 是现代前端开发中一个极其重要的工具,可以说是前端网络请求领域的“事实标准”。 引子:为什么我们需要Axios?浏览器没有自带网络请求功能吗? 当然有!现代浏览器内置了两种网络请求技术: XMLHttpRequest (XHR): 这是“上古时代”的API,API设计非常笨重、回调函数嵌套

使用ChatGPT做iOS面试的一次体验

ChatGPT新手教程 Q: 如何招一个优秀的iOS开发 AI: 要招聘一名优秀的 iOS 开发人员,需要考虑以下几点: 编程技能:要求具备良好的 Swift 和 Objective-C 编程能力,包括面向对象编程、代码设计和解决问题的能力。 应用程序架构:需要熟悉常用的 iOS 应用程序架构,如 MVC 和 MVVM,并知道如何设计优秀的应用程序架构

关于RecyclerView的setHasFixedSize方法

recyclerView.setHasFixedSize方法什么时候设置为true 什么时候设置为false呢? 可以看下源码中关于这个方法的解释: /** * RecyclerView can perform several optimizations if it can know in advance that RecyclerView's * size is not a