万字长文详解如何使用Swift提高代码质量
前言
京喜APP最早在2019年引入了Swift,使用Swift完成了第一个订单模块的开发。之后一年多我们持续在团队/公司内部推广和普及Swift,目前Swift已经支撑了70%+以上的业务。通过使用Swift提高了团队内同学的开发效率,同时也带来了质量的提升,目前来自Swift的Crash的占...[2023/5/10]
iOS 单元测试
作用一名合格的程序员,得能文能武。写的了代码,也要写的了单元测试。
单元测试步骤
1.File -> New -> Target, 选择单元测试Target,创建成功
如果项目是老项目,那需要手动创建一下UnitTest Target,如果项目里已经有了就忽略。
2.创建一个swi...[2023/5/10]
Flutter(十) 音频+视频播放
在Flutter中,我们有各种插件可供使用,从而实现音频和视频的播放功能。
例如,可以使用“text_to_speech”插件来将文字转换为语音,使用内置的“video_player”插件轻松地实现视频播放,或者使用“audioplayers”插件实现音频播放。
对于仅需要简单播放器功能的情...[2023/5/8]
Android那两个你碰不到但是很重要的类之ViewRootImpl
目录前言1.ViewRootImpl哪来的?2 ViewRootImpl 一个View链渲染的中转站3 不能在子线程操作View?4 View 挂载5 View.post()的Runnable最终在哪执行了?6 为什么View.post 可以获取宽高7 还有一点值得注意总结 前言
这两个类就是A...[2023/5/8]
[MAUI]模仿iOS多任务切换卡片滑动的交互实现
@目录原理创建布局创建分布函数创建动效创建绑定数据细节调整首张卡片的处理为卡片添加裁剪跳转到最后一张卡片项目地址
看了上一篇博文的评论,大家对MAUI还是比较感兴趣的,非常感谢大家的关注,这个专栏我争取周更??。
App之间的多任务切换相信你们都很熟悉。苹果设备从iOS9开始使用水平排列的...[2023/5/4]
Android-图片压缩(二)- 压缩基础
Android - 图片压缩(一)- 项目中取图片转bitmap
Android - 图片压缩(二)- 压缩基础
Android - 图片压缩(三)- 剖析鲁班,借鉴参数
Android - 图片压缩(四)- 手撸压缩工具
Android - 图片压缩(五)- 推广使用,开始属于你的工具库
前...[2023/5/4]
iOS APP启动广告实现方式 与 APP唤端调用
APP启动广告功能实现要从2个方面思考
一是UI方案,怎样处理广告页与主页之间的切换方式。
二是广告页展示时机,是使用后台实时广告数据还是使用本地缓存广告数据。后台数据方式获取广告最新但是用户要等待后台返回数据后才能展示,增加用户等待时间。使用本地缓存启动速度快但数据更新不及时。
U...[2023/4/28]
基于.Net开发的ChatGPT客户端,兼容Windows、IOS、安卓、MacOS、Linux
2023年目前要说最热的点,肯定是ChatGPT了。
ChatGPT官方提供的网页版本,还有需要科*上网,很多人都会基于此进行封装。
现在是移动互联网时代,基于手机APP的需求还是很大的。
所以,今天给大家推荐一个ChatGPT客户端开源项目,兼容苹果和安卓手机、PC。
项目简介
这是基...[2023/4/21]
详解Android?Flutter如何自定义动画路由
目录简介自定义跳转使用flutter动画基础实现一个自定义的route总结 简介
flutter中有默认的Route组件,叫做MaterialPageRoute,一般情况下我们在flutter中进行跳转的话,只需要向Navigator中传入一个MaterialPageRoute就可以了。
但...[2023/4/21]
iOS16新特性 | 灵动岛适配开发与到家业务场景结合的探索实践
作者:京东零售 姜海
灵动岛是苹果在iPhone 14 Pro和iPhone 14 Pro Max上首次提出的全新UI交互形式,创新性的让虚拟软件和硬件的交互变得更为流畅。当有来电、短信等通知时,灵动岛会变化形态,以便让用户能够更直观地接收到这些信息。
而在用户使用一些应用App,比如音乐,...[2023/4/12]
微信小程序中如何使用store数据共享
全局数据共享 全局数据共享(状态管理)是为了解决组件之间数据共享的问题,开发中常用的全局数据共享方案有:Vuex、Redux、MobX等
在小程序中,可用 mobx-miniprogram (用来创建 Store 实例对象) 配合 mobx-miniprogram-bindings (用来把 ...[2023/4/12]
如何在微信小程序中实现音视频通话
微信小程序的音视频通话可以通过微信提供的实时音视频能力实现。这个能力包括了音视频采集、编码、传输和解码等多个环节,开发者只需要使用微信提供的 API 接口就可以轻松地实现音视频通话功能。
在具体实现上,开发者需要先在微信开放平台上注册并创建小程序,然后在小程序中集成微信实时音视频能力的 SDK...[2023/4/10]
Android Banner - ViewPager 02
Android Banner - ViewPager 02
现在来给viewpager实现的banenr加上自动轮播
自动轮播的原理,使用handler的延迟消息来实现。
自动轮播实现如下内容
开始轮播&停止轮播
可配置轮播时长、轮播方向
通过自定义属性来配置轮...[2023/4/6]
在Android应用中通过Chaquopy使用Python
在Android应用中通过Chaquopy使用Python [译]
通过Python脚本和包为Android应用带来更多的功能
翻译自https: proandroiddev.com/chaquopy-using-python-in-android-apps-dd5177c9ab6b
欢迎...[2023/4/3]
从头开始,手写android应用框架(一)
前言
搭建android项目框架前,我们需要先定义要框架的结构,因为android框架本身的结构就很复杂,如果一开始没定义好结构,那么后续的使用就会事倍功半。
结构如下:
com.kiba.framework
——activity 存储所有的活动
——base 存储baseAc...[2023/3/31]
iOS?GCD之dispatch_group_enter和dispatch_group_leave使用
目录正文如何使用crash 场景分析源码实现 正文
在实际开发中,经常需要在几个任务全部执行完成之后,在执行后续操作,在 iOS 中,我们可以通过 NSOperation 等达到这一目的。在本篇文章中,我们会介绍如何通过 dispatch_group_enter 和 dispatch_group...[2023/3/31]
Android?应用程序的启动流程示例详解
目录应用进程的启动流程1、ActivityStackSupervisor.startSpecificActivity2、ATMS.startProce Async3、LocalService.startProce 4、startProce Locked函数5、Proce List.startProc...[2023/3/31]
Android时间设置的3个小彩蛋分享
目录问题现象源码分析实践验证结论 问题现象
最近处理了一个非常有意思的系统bug,修改系统时间,重启后居然没有生效
注意要关闭使用网络提供的时间和使用网络提供的时区这两个开关。
重启后显示的时间日期为
显示的时间既不是我设置的时间,也不是当前时间(当前时间为2023-03...[2023/3/29]
Android系统服务DropBoxManagerService详解与实践应用
作者:vivo 互联网客户端团队- Ma Lian
借助系统DropBoxManagerService对于系统文件目录dropbox管理的设计,了解其文件管理的规则、运行机制、读写机制、管控机制,根据其设计一个客户端日志文件管理与上报功能
一、背景
随着公司应用的逐渐增多...[2023/3/27]
Swift中的可选项Optional解包方式实现原理
目录为什么需要Optional什么是OptionalOptional实现原理Optional的解包方式1. 可选项绑定(Optional Binding)2. 强制解包(Forced Unwrapping)3. 隐式解包(Implicitly Unwrapped Optionals)可选链(Opti...[2023/3/27]
Swift中的高阶函数功能作用示例详解Swift中的高阶函数功能作用示例详解
目录高阶函数的作用1. 简化代码2. 提高可读性3. 支持函数式编程4. 提高代码的可重用性常见的高阶函数1. map()2. filter()3. reduce()4. sorted()5. forEach()6. compactMap()7. flatMap()8. zip()9. first(...[2023/3/27]
Web端扫码登录的原理和实现讲解
1 概述
在日常 Web 端产品的使用中,一般都会支持扫码登录,这种方式操作简单,相对传统的手机号登录等方式速度更快、安全性更高,还可以增加自家产品的粘合度。
2 登录原理
扫码登录本质是解决将 APP 端的用户登录信息(通常是 Token)通过扫码的形式安全稳定地同步给 Web 端。
...[2023/3/24]
maui BlazorWebView+本地html (vue、uniapp等都可以) 接入支付宝sdk 进行支付宝支付 开发 Android app
首先添加支付宝sdk的绑定库
nuget 包:Chi.MauiBinding.Android.AliPay
项目地址:https: github.com/realZhangChi/MauiBinding
新建maui Blazor应用,在根目录创建...[2023/3/22]
MaterialApp?Flutter?应用全局配置与主题管理详解MaterialApp?Flutter?应用全局配置与主题管理详解
目录前言主题管理颜色配置字体配置按钮样式导航和路由初始路由命名路由动态路由未知路由本地化支持全局配置Builder 属性结论 前言
在开发 Flutter 应用程序时,我们需要有一个组件来管理全局设置,包括主题、导航和路由。这就是 MaterialApp 的用途。作为 Material De...[2023/3/22]
Flutter?LinearProgressIndicator使用指南分析
目录正文创建基本的进度条设置进度条的外观自定义进度条的外观总结 正文
LinearProgre Indicator 是 Flutter 中用于创建线性进度指示器的 widget。它可以方便地显示任务的进度,帮助用户了解任务的完成情况。在本文中,我们将介绍如何使用 LinearProgre I...[2023/3/22]
一文吃透扫码登录原理
本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~
Github地址:https: github...[2023/3/20]
微信小程序实现文字长按复制与一键复制功能全过程
目录一、不引入外部组件的实现方式二、引入外部组件的实现方式总结 一、不引入外部组件的实现方式
<!-- index.wxml -->
<view>
<!-- 长按复制 -->
<view bindlongtap="copyText" da...[2023/3/20]
maui BlazorWebView+本地html (vue、uniapp等都可以) 接入微信sdk 开发 Android app
之前没接触过Android maui 开发,这几天刚摸索,有些不合理的地方欢迎指出。
首先添加微信sdk的绑定库
nuget 包:Chi.MauiBinding.Android.WeChat
项目地址:h...[2023/3/17]
微信小程序抢红包高并发设计
1、背景
某次促销活动采用微信炒群,红包雨的方式进行引流,面向广大C端用户,活动期间面向大规模用户,系统设计需要承载三高(高可用、高并发、高性能)要求。
系统设计首先我们要考虑几个问题:
1、业务场景面向高并发,怎么设计一个高性能抢红包程序以解决在高并发条件下能正常运行?
2、系统高并发瓶...[2023/3/8]
Flutter 下载篇 - 贰 | 当下载器遇上切换网络库
需求背景
继上篇《Flutter 下载篇 - 壹 | flutter_download_manager 源码解析》中详细介绍了 flutter_download_manager 用法和原理。在优缺点中提到,该库纯 Dart 实现,支持下载管理,暂停,恢复,取消和断点续传。其中有个缺点是网络库与 ...[2023/3/6]
自己做一个ChatGPT微信小程序(代码开源)
离职在家 闲来无事看最近ChatGPT很火 花了一天时间 用Uniapp写了一个小程序端的ChatGPT,实在是看不惯~ 一大堆利用ChatGPT收费的应用(小程序) 整个开源的玩玩
另外主要是自己本身是后端开发人员~ 刚好用uniapp实践一下小程序开发
先看看主页面效果图吧
演示视...[2023/3/6]
坏消息,new Date()方法在IOS系统中存在null值情况
背景介绍
笔者最近在开发小程序,发现在使用new Date()函数在电脑模拟器上倒是没什么影响能很好实现效果,但是在我的Iphone上看到的效果跟预想有出入。
图为在电脑微信小程序模拟器的效果图,可以看到感觉良好。
图为在世界最好用的手机产品Iphone上的效果,可以看到和模拟器有出入,...[2023/3/3]
flutter 微信聊天输入框功能实现flutter 微信聊天输入框功能实现
目录chat_bottom.dartchat_element_other.dart chat_element_self.dart chat_input_box.dart page_chat_person.dartprovider_chat_content.d...[2023/3/3]
快速了解Android Room使用细则
目录1、前言2、添加依赖2、Entity3、DAO4、Database5、获取DAO实例6、调用DAO方法7、使用步骤8、事务(Transaction)9、数据库迁移10、视图(View)11、Flow!结尾 1、前言
最近在开发中,Room用的比较多,时不时要查资料,干脆写一篇Room的使...[2023/3/3]
快速了解Android?Room使用细则进阶
目录1、前言2、@ForeignKey和@PrimaryKey3、@TypeConverters4、@Relation5、@Transaction6、@Embedded7、@ColumnInfo(1)指定实体类中的字段名称(2)指定实体类中的字段默认值(3)指定实体类中的字段约束8、@Ignore忽...[2023/3/3]
好消息!微信小程序开发环境自带vConsole
背景介绍
事情是这样子的,我们在开发小程序的时候,需要在真机上把相关的日志打出来以便进行问题定位和回溯,于是在编程界就有个今天这个新闻。------ 好消息!广东某男子发现微信小程序开发环境自带vConsole.
同学,你看到这个新闻不震惊不兴奋打鸡血吗?你开发小程序都少装一个vConsole...[2023/2/27]
与 Flutter 共创未来 | Flutter Forward 活动精彩回顾
作者 / Google 开发者框架和语言 (含 Flutter、Dart 和 Go) 产品经理 & 用户体验总监 Tim Sneath
我们很高兴可以在 Flutter Forward 活动 上分享我们对 Flutter 的愿景。Flutter Forward 是在肯尼亚内罗毕以线...[2023/2/24]
微信小程序的全局弹窗以及全局实例
全局组件
微信小程序组件关系中,父组件使用子组件需要在父组件index.json中引入子组件,然后在父组件页面中使用,这种组件的对应状态是一对一的,一个组件对应一个页面。如果有一个全局弹窗(登录),那么每个页面引入一次组件会非常麻烦,这里就需要封装全局弹窗,在页面直接引入使用即可。
微信小程序...[2023/2/24]
flutter系列之:在flutter中使用导航Navigator
目录简介flutter中的NavigatorNavigator的使用总结
简介
一个APP如果没有页面跳转那么是没有灵魂的,页面跳转的一个常用说法就是Navigator,flutter作为一个最为优秀的前端框架,Navigator肯定是必不可少的,那么在flutter中如何使用Navigat...[2023/2/20]
微信公众号开发消息推送功能微信公众号开发消息推送功能
目录微信公众号开发微信公众号简介注册微信公众号注册测试公众号搭建微信本地调试环境微信公众号接入(校验签名)给指定用户推送消息网页授权获取用户openid给指定用户发送模板信息 微信公众号开发
代码地址
运行效果
微信公众号简介
微信公众号分为服务号、订阅号、企业号,订阅号可以个...[2023/2/17]
IOS开发Objective-C?Runtime使用示例详解
目录前言一些关键字消息传递 (Me aging)KVO关联对象 (A ociated Objects)AOP(Method Swizzling)其它 前言
Runtime 是使用 C 和汇编实现的运行时代码库,Objective-C 中有很多语言特性都是通过它来实现。了解 Runt...[2023/2/15]
手把手教你如何获取微信用户openid
目录1、前言2、手工方式2.1、设置域名2.2、获取code2.3、换取acce _token3、使用第三方sdk3.1、引入第三方依赖3.2、将微信公众号配置写入yaml文件并引入类中3.3、编写配置类初始化设置wxMpService配置3.4、编写对应的controller3.5、进行debug...[2023/2/15]
Flutter配置代理抓包实现过程详解
目录背景工具准备配置Flutter代理方式一、http请求库配置代理web_socket_channel配置代理方式二、重写原生方法 背景
在开发Flutter中,我们经常需要对网络请求进行调试,而Flutter自带的devtool的network又不太好用,有时会出现请求成功,但是又看不到...[2023/2/15]
Flutter ChatGPT代码生成器方案概念
目录ChatGPT1. ChatGPT 的特点和劣势3. 解决方案的概念4. Dart 数据类生成器完善5. 代码生成字符串 与 ChatGPT 生成字符串
ChatGPT
ChatGPT 作为一个自然语言处理工具,已经火了一段时间。对待 ChatGPT 不同人有着...[2023/2/10]
android开发技巧杂谈
android开发技巧一
android的一些常用包是发布在国外的,所以一些包,我们下载不下来,我们可以使用阿里云的镜像地址(maven { url ''https: maven.aliyun.com/nexu content/group public/'' })。
使用https的地址,如下...[2023/2/6]
uni-app + .NET 7实现微信小程序订阅消息推送uni-app + .NET 7实现微信小程序订阅消息推送
微信小程序的订阅消息是小程序的重要能力之一,为实现服务的闭环提供更优的体验。订阅消息我们应该经常见到,比如下单成功之后的服务通知,支付成功后的支付成功通知,都属于小程序的订阅消息。
本文只实现一次性订阅的功能,至于长期订阅与设备订阅,有机会碰到再进行研究。
目录功能介绍消息类型基本流程注意事...[2023/2/6]
Swift中的HTTP请求体Request Bodies使用示例详解
目录正文通用化body空请求体 EmptyBody数据体 DataBodyJSON体 JSONBody表单 FormBody其他Body Other Bodies 正文
在进行HTTPRequest请求发送前,我们稍稍改进一下我们的结构体,最后,我们将会以下面的信息输出:
public ...[2023/2/6]
Android基准配置文件Baseline?Profile方案提升启动速度Android基准配置文件Baseline?Profile方案提升启动速度
目录引言测量工具生成基准配置文件验证优化效果 引言
偶然在Youtube上看到一名国外安卓开发者分享了一个提升应用性能的视频,其中使用到了macro benchmark来进行性能测量,包括启动速度和列表帧率,方法是生成一个baseline-prof.txt文件放于app rc/main/下。...[2023/2/6]
Flutter快速制作一个水印组件实例详解
目录正文通过child属性将水印叠加给子组件createWatermark方法Watermark组件的完整代码 正文
项目开发的过程中,经常会遇到添加水印的需求,其作用无非就是防止重要信息通过截图外传。(虽然我觉得并没有什么卵用,但领导的需求是不容质疑的)
那么,作为一线码农的我,...[2023/2/1]
Android隐私协议提示弹窗的实现流程详解Android隐私协议提示弹窗的实现流程详解
android studio版本:2021.2.1
例程名称:pravicydialog
功能:
1、启动app后弹窗隐私协议
2、屏蔽返回键
3、再次启动不再显示隐私协议。
本例程的绝大部分代码来自下面链接,因为本人改了一些,增加了一些功能,所以不有脸的算原创了。
下...[2023/2/1]