自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

WJ的博客

记录自己成长的点滴

  • 博客(148)
  • 资源 (6)
  • 收藏
  • 关注

原创 Qt 快速入门学习笔记

1、windows安装msvc编译器模块需要安装Windows软件开发工具包。MinGW是Windows平台使用GNU工具导入库的集合。2、Linux环境安装双击.run文件即可安装常用的开发依赖3、visual studio中创建Qt项目以及配置1、工具安装a、工具->扩展和更新->联机右上角搜索qt,下载安装Qt Visual Studio Toolsb、配置Qt编译器版本:1、点击Qt VS Tools选项 -> Qt Versions, 再弹出的框中添加对应的编译器版本。

2023-05-04 21:49:50 3475

原创 静态库和动态库相关知识

iOS和静态库和动态库相关知识Symbol Type说明Uundefined(未定义)Aabsolute(绝对符号)Ttext section symbol(__TEXT.__text)Ddata section symbol(__DATA.__data)Bbss section symbol(__DATA.__bss)Ccommon symbol(只能出现在 类型的文件中)-debugger symbol tableS...

2022-06-06 21:46:39 508

原创 Vuex4.0版本初学笔记(基于Vue3.0)

Vuex4.0版本初学笔记(基于Vue3.0)devtools 离线编译安装1、源码下载地址2、yarn install安装依赖yarn run build编译3、在chrom中打开开发者模式,点击“加载已解压的扩展程序”,选择源码目录packages/shell-chrome/Vuex的基础使用1、创建storeimport { createStore } from 'vuex'const store = createStore({ state() { r

2022-03-06 21:02:24 728

原创 Vue Router的学习笔记(基于Vue3.0)

Vue Router的学习笔记(基于Vue3.0)前端路由原理URL的hash变化实现URL的hash也就是锚点(#), 本质上是改变window.location的href属性。可以通过直接赋值location.hash来改变href, 但是页面不发生刷新。hash的优势就是兼容性更好,在老版IE中都可以运行,但是缺陷是有一个#,显得不像一个真实的路径<!DOCTYPE html><html lang="en"><head> <meta

2022-03-05 21:03:13 292

原创 React脚手架项目启动解析以及webpack配置

React脚手架项目启动解析以及webpack配置React项目一般都是利用脚手架来创建的,今天通过启动入口来分析一下这个过程以及了解React项目中的webpack是如何配置的。项目准备1、首先利用create-react-app创建一个Demo项目,但是默认的项目是看不到webpack的配置信息的。2、利用package.json中配置的脚本npm run eject导出更多详细的配置信息。3、这个时候在config目录下可以看到详细的配置webpack.config.js和webpack

2021-12-15 22:49:29 2682

原创 Vue脚手架创建的项目的启动流程

Vue脚手架创建的项目的启动流程当利用vue脚手架创建项目之后利用 npm run serve 启动开发环境,我们就从这里来开始分析。入口分析首先从package.json中的脚本配置来看,npm run serve调用的是vue-cli-service serve命令。这个时候就应该来到node_modules中的.bin查找vue-cli-service.js文件。但是在vue-cli-service.js文件中有一句代码const Service = require(’…/lib/Ser

2021-12-14 22:01:04 2487

原创 Webpack源码分析

Webpack源码分析在上一篇文章已经对webpack_cli启动过程进行了大致的分析,程序到最后就是执行webpack.run方法。现在对webpack的源码进行进一步的分析。准备工作:1、在github下载webpack的源码2、在源码目录创建需要编译的源码和webpack.config.js配置webpack/webpack-main/examples/demo// build.jsconst webpack = require("../../lib/webpack");cons

2021-12-03 21:46:05 1212

原创 webpack_cli运行流程解析

webpack_cli运行流程解析准备工作1、在github中下载webpack和webpack-cli的代码2、通过webpack源码中的package.json分析webpack的入口在bin/webpack.js中。流程分析查看bin/webpack.js源码文件分析流程:1、首先判断webpack-cli是否安装,没有安装就提示安装2、安装之后执行runCli()这里其实就是引入webpack-cli/bin/cli.js文件执行cli.jsconst runCli = cli

2021-11-30 22:03:02 1755

原创 Webpack 基础学习笔记

Webpack 基础学习笔记Webpack基础使用webpack的安装npm init -ynpm install webpack webpack-cli -Dwebpack配置文件的基础使用const path = require('path');module.exports = { // 入口 entry: './src/index.js', output: { // 输出目录 path: path.resolve(__d

2021-11-28 21:01:10 660

原创 基于React搭建Electron项目框架

基于React搭建Electron项目框架最近利用Electron来开发桌面端的项目,将项目搭建过程和遇到的问题做一个记录。项目基础搭建以及打包配置优化环境加速cat ~/.zshrc | grep ELECTRON// 配置export ELECTRON_MIRROR="https://npm.taobao.org/mirrors/electron/"Electron本地加载React项目1、创建React项目create-react-app demo2、添加Electro

2021-11-07 16:06:32 1009 1

原创 前端常用基础以及布局方式学习笔记

前端常用基础以及布局方式学习笔记HTML常用标签标题标签:<h1></h1>~<h6></h6>段落标签:<p></p>换行标签:<br/>水平线:<hr/>文字斜体:<i></i> <em></em>加粗:<b></b> <strong></strong>下标:<sub></sub&

2021-11-07 15:30:49 275

原创 Node.js初学笔记

Node.js初学笔记Node.js学习笔记,包括原生模块、Express框架、Koa框架的基本使用。以及基于Koa项目的搭建以及Postman接口测试和一些使用技巧。Node.js http模块基础功能node.js版本是v14.17.3记录http模块常用功能:1、url解析2、headers数据获取3、请求方式获取(get/post等)4、响应状态码设置5、响应头设置6、从第三方服务器获取数据const http = require('http');const url = re

2021-09-27 21:24:56 2867 4

原创 重拾React框架学习笔记总结

重拾React框架学习笔记总结环境搭建nvmnvm用来管理node版本。brew install nvmnvm ls-remote // 查看所有的node可用版本nvm list // 查看已安装node版本nvm install 版本号 // 下载指定node版本,如nvm install v11.14.0nvm use 版本号 // 使用指定版本nvm alias default // 设置默认版本,每次启动终端都使用该版本yarnyarn管理依赖包npm

2021-08-23 21:55:40 249

原创 iOS 项目多环境搭建

iOS 项目多环境搭建基于Target来搭建多环境基于Target来搭建多环境的项目,本质上就是对原有Taeget进行Duplicate操作。这样会Copy一份与原有Target相同的Target Copy。此时也会生成一份copy的info.plist文件这个时候就可以针对不同的Target做差异性配置,包括AppIcon,BundleID等。缺点就是,当新创建的新文件的时候会根据需要是否加入另一个Target了。基于Build Configuration和Xcode Scheme来

2021-07-11 21:48:39 257 2

原创 Mac App项目开发总结

Mac App项目开发总结Launch Daemon守护进程详细的Launch Daemon使用文档见官方文档,这里只简单介绍一下。Launch Daemon官方文档1、Launch Daemon启动的程序拥有root用户的权限2、Launch Daemon依赖的配置文件plist需要存放在/Library/LaunchDaemons/目录下,开机会自启动配置的程序3、可以在命令行通过sudo launchctl [cmd]来操作守护进程// 详细见launchctl --help//

2021-05-27 21:48:26 1748

原创 基于Appium搭建移动端自动化测试环境

基于Appium搭建移动端自动化测试环境模拟器环境搭建下载桌面客户端appium下载地址安装appium-doctor检测环境npm install -g appium-doctor// 检测环境/usr/local/Cellar/node/13.12.0/bin/appium-doctor --ios安装Python库依赖pip3 install Appium-Python-Client安装Carthagebrew install carthage模拟器自动化

2020-12-08 21:16:19 343

原创 Flutter学习笔记之-实战项目

Flutter学习笔记之-实战项目基于对Flutter的学习,编写了一个简单的Demo项目,包括Flutter大多数技术功能点。项目功能点APP基础框架搭建主要页面状态保活pageView、自定义CustomScrollView、瀑布流布局路由、命名路由以及参数传递、转场动画下拉刷新、上拉加载更多本地图片、网络图片、读取json文件、json转模型webView使用,安卓上面webView https和http混合模式使用国际化,根据系统语言切换APP语言暗黑模式,切换主题状态

2020-10-12 22:32:39 296

原创 Flutter学习笔记之-原生项目集成Flutter模块

Flutter学习笔记之-原生项目集成Flutter模块原生项目集成Flutter模块适合用于以下场景:1、重写整个项目存在很大成本的时候2、只想某一个功能模块采用Flutter试水项目的时候原生项目集成Flutter模块步骤创建Flutter模块项目1、创建Flutter模块项目flutter create --template module mudule_demo2、编写Flutter模块的代码iOS原生项目集成Flutter采用CocoaPods来管理Flutter依赖。

2020-10-08 22:10:17 550

原创 Flutter学习笔记之-原生插件的编写

Flutter学习笔记之-原生插件的编写类似在React Native项目中一样,当Flutter提供功能或者已存在的插件不能满足项目需要的时候就需要我们自己编写原生代码的插件以供Dart代码使用。原生插件和Dart之间通信原理根据官方图片的介绍:Flutter中通过FlutterMethodChannel与原生代码之间进行通信,而在Android中则使用MethodChannel。原生插件的编写首先先创建自己的Flutter项目编写测试项目代码,根据官方文档的说明采用获取手机电量来说明

2020-09-29 21:43:19 687

原创 Flutter学习笔记之-国际化

Flutter学习笔记之-国际化记录在Flutter中实现国际化的方式,默认组件都是以英文来显示的文字。系统组件国际化实现步骤在pubspec.yaml中引入配置dependencies: flutter_localizations: sdk: flutter在入口MaterialApp中添加配置class MyApp extends StatelessWidget { @override Widget build(BuildContext context) {

2020-09-26 21:36:56 672

原创 Flutter学习笔记之-状态管理

Flutter学习笔记之-状态管理在Flutter中管理状态类似于原生开发中数据的管理。一般分为单个widget的管理以及多个widget中的数据共享管理等。根据官方文档的说明,在Flutter中使用provider来管理应用中的状态是比较推荐的做法。provider的使用步骤引入provider库在pubspec.yaml文件中引入providerdependencies: flutter: sdk: flutter provider: ^4.3.1provid

2020-09-23 21:47:14 475

原创 Flutter学习笔记之-获取设备信息和局部页面适配

Flutter学习笔记之-获取设备信息和局部页面适配获取设备信息获取屏幕的宽高以及状态栏// 在根节点的build方法中就可以获取final physicalWidth = window.physicalSize.width;final physicalHeight = window.physicalSize.height;final dpr = window.devicePixelRatio;final screenWidth = physicalWidth / dpr;final s

2020-09-22 22:05:08 461

原创 Flutter学习笔记之-触摸事件

Flutter学习笔记之-触摸事件官方文档中介绍了Flutter中采用Listener和GestureDetector来对触摸事件的监听处理。Listener的基本使用Listener可以对child中的widget的触摸事件进行监听,包括手指按下、移动、抬起等。class DemoWidget extends StatelessWidget { @override Widget build(BuildContext context) { return Listener(

2020-09-13 22:16:48 439

原创 Flutter学习笔记之-基础动画的基本使用

Flutter学习笔记之-基础动画的基本使用基础动画的概念和API认识1、Animation动画的抽象类,能够实现对动画状态的监听和动画的监听(addStatusListener和addListener)。2、AnimationController动画的管理类3、CurvedAnimation管理动画的运动曲线4、Tween自定义AnimationController中lowerBound和lowerBound值动画案例实现基础动画实现一个基本的动画(从小变大,再从大变小),并实现对动画

2020-09-09 21:44:38 117

原创 Flutter学习笔记之-路由和导航

Flutter学习笔记之-路由和导航在iOS原生开发中页面的跳转是通过UINavigationController来实现的,而Flutter中页面的跳转是通过Navigator和Route来实现的。页面的基本跳转案例案例包括页面跳转到下一个页面,返回上一个页面。// 第一个页面,通过点击按钮跳转class DemoWidget extends StatelessWidget { @override Widget build(BuildContext context) { r

2020-09-06 21:19:19 422

原创 Flutter学习笔记之-圆形头像实现方式

Flutter学习笔记之-圆形头像实现方式开发中如何实现类似圆形图片Container+BoxDecoration来实现圆角图像class DemoWidget extends StatelessWidget { @override Widget build(BuildContext context) { return Center( child: Container( width: 100, height: 100,

2020-09-02 22:19:49 344

原创 Flutter学习笔记之-滚动Widget的基础使用

Flutter学习笔记之-滚动Widget的基础使用ListView通过官方文档可知ListView的创建方式有很多,可以根据实际情况选择使用方式1、默认构造函数2、ListView.builder方法,可以显示大量数据的ListView3、ListView.separated可以添加分割线4、ListView.custom自定义的方式1、默认构造函数的方式class DemoWidget extends StatelessWidget { @override Widget bu

2020-08-31 22:17:59 279

原创 Flutter学习笔记之-基础Widget的简单使用

Flutter学习笔记之-基础Widget的简单使用文本Text WidgetText分为文本和富文本展示普通文本class DemoWidget extends StatelessWidget { @override Widget build(BuildContext context) { return Text( 'Hello, ssssadfasdfdsfdsfasdfdfdasdfadsfadfadfdfdfdfdfdfdfdfdfdfdfafdss! Ho

2020-08-24 23:03:57 203

原创 Flutter学习笔记之-常用布局容器Widget的简单使用

Flutter学习笔记之-常用布局容器Widget的简单使用StatelessWidgetStatelessWidget是无状态的Widget,里面没有变化的状态。class StatelessWidgetDemo extends StatelessWidget { @override Widget build(BuildContext context) { // 返回自己需要创建的组件 }}StatefulWidgetStatefulWidget有状态的Widge

2020-08-20 23:02:33 164

原创 Flutter学习笔记之-Dart语言快速入门

Flutter学习笔记之-Dart语言快速入门基于有其他开发语言的基础,快速了解Dart语言中的一些语法和区别于其他语言的特殊点变量1、变量不限定为单一类型可以指定为dynamic或者Object类型Object obj = "name";dynamic obj = "name"obj = 4;// 变量的定义var param = "张三"2、无论什么类型的变量未初始化的默认值为null3、final和constfinal只能赋值一次,在首次访问时才被初始化const是编

2020-08-12 22:06:06 243

原创 Flutter 学习笔记之-开发环境的搭建

Flutter 学习笔记之-开发环境的搭建镜像配置到环境变量在~./zshrc 或者 ~./bash_profile文件中配置如下镜像信息# flutterexport PUB_HOSTED_URL=https://pub.flutter-io.cnexport FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn下载Flutter SDK并配置到环境变量中1、下载SDKMac版本的Flutter SDK下载地址2、解压下载

2020-08-10 21:55:20 302

原创 Swift tips 笔记

Swift tips 笔记CaseIterable协议enum遵守了CaseIterable协议可以实现遍历枚举值enum Season : CaseIterable { case spring, summer, autumn, winter}print(Season.allCases.count)Season.allCases.forEach { (s) in print(s)}defer 语句defer 用来定义离开代码块前必须执行的代码assert 断言

2020-07-29 21:47:58 226

原创 iOS 项目中对OpenSSL和curl的使用

iOS 项目中对OpenSSL和curl的使用OpenSSL和curl的交叉编译OpenSSL和curl的编译采用shell脚本来编译,编译脚本是由网上找的修改版本。编译脚本下载地址使用方法:1、下载对应的源码并解压2、将对应的脚本和解压后的源码文件夹放在同一目录3、修改shell脚本中的OPENSSL_VERSION版本信息为对应的版本,或者将-v 传入对应的脚本4、开始编译./openssl-build.sh5、编译完成后会在当前目录生成对应的静态库curl是否支持ssl的判断

2020-06-09 22:00:51 1031

原创 Android动画总结

Android动画总结基础动画平移动画Translation实现方式一:xml编写平移动画base_anim_translation.xml<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android"...

2020-04-09 22:50:08 282

原创 LLDB插件提升开发效率

LLDB插件提升开发效率LLDB插件的的配置使用以及安装过程中遇到的问题记录!chiselfacebook提供的lldb插件chisel。Github地址利用brew安装brew install chisel配置.lldbinit文件,lldb在启动的时候会默认调用这个文件cd ~/touch .lldbinit (文件存在则忽略这一步)// 在.lldbinit加入代码,...

2020-03-11 22:06:46 747

原创 Moya、RxMoya基本使用

Moya、RxMoya基本使用Moya的基本使用1、首先需要定义一个接口层,定义一些需要请求的接口并配置相关的路由。import Moyaenum MyService { case getList case login(userName: String, passWord: String)}extension MyService: TargetType { ...

2020-03-02 20:53:33 2604

原创 Alamofire 基本结构及部分代码详解

Alamofire 基本结构及部分代码详解SessionManagerSessionManager默认由default返回一个单例对象,里面配置了默认的URLSessionConfiguration和defaultHTTPHeaders。public static let `default`: SessionManager = { let configuration = URL...

2019-12-30 20:46:56 789 1

原创 RxSwift KVO的实现原理

RxSwift KVO的实现原理RxSwift中的KVO使用是不需要自己移除观察者的,那它的底层实现原理是什么呢?案例使用person.rx.observe(String.self, "name").subscribe(onNext: { (change) in print("observe订阅到了KVO:\(String(describing: change))")}).di...

2019-12-10 22:47:22 928

原创 RxSwift 销毁者核心销毁流程

RxSwift 销毁者核心销毁流程在RxSwift中的代码中经常需要用disposeBag来做序列的销毁操作,那这背后的原理是怎么样工作的呢?我们根据源码来看看背后的原理。var disposeBag = DisposeBag()let ob = Observable<Any>.create { (observer) -> Disposable in observ...

2019-12-02 22:14:33 350

原创 RxSwift Scheduler调度环境

RxSwift Scheduler调度环境调度环境的初探DispatchQueue.global().async { self.button.rx.tap.subscribe(onNext: { () in print("订阅回调线程 \(Thread.current)") // 主线程 }).disposed(by: self.disposeBag)}上面按...

2019-11-28 20:22:31 241

xampp-linux-x64-7.3.9.zip

xampp-linux-x64-7.3.9-0-installer.run安装包下载,官方的下载速度太慢了

2019-09-25

Kotlin系统入门与进阶.txt.zip

Kotlin系统入门与进阶

2019-07-23

Professional.iOS.Programming

iOS英文原版书籍,里面包括了在iOS中实现FTP客户端的代码!

2019-02-26

RxSwiftRxSwift Reactive Programming with Swift 4

RxSwift最新版本对应于Swift 4语法 RxSwift最新版本对应于Swift 4语法

2018-07-18

函数式Swift

仅限交流学习,请支持正版

2016-06-02

空空如也

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

TA关注的人

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