Code Monkey home page Code Monkey logo

iosdevlevelingup's People

Contributors

shannonchenchn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

iosdevlevelingup's Issues

APP 上架与审核

  • 网站
    • Apple Developer Center
    • iTunes Connect
  • 准备
    • 申请账号
      • 账号类型
    • 证书
      • 开发证书
      • 发布证书
      • 推送证书
    • 上架流程
      • 资料填写
      • AppStore 截图、APP Icon
    • 版本号
  • 打包脚本
  • 应用分发与内测
    • TestFlight
    • 蒲公英
    • fir.im
  • 私有 API 的检测
  • 审核
    • 审核时长
    • 审核规则
    • 申诉
    • 注意事项
  • 加急审核申请

性能调优和监控体系

性能调优和监控体系

  • 性能优化
    • 结案侧、量化:Instruments 的使用
    • 瓶颈
    • 优化
    • 领域:
      • 网络
      • UI 卡顿
      • 内存
      • 启动速度
  • 监控体系
    • 日志系统
    • 卡顿监控
    • 崩溃预防和监控
      • 崩溃收集
    • 错误码监控
    • 耗时监控
    • 网络监控
    • 内存泄漏监控
    • OOM
    • 硬件监控
    • 业务监控
    • 补救措施
      • 后台配置
      • 热修复
  • 第三方工具
    • bugtags

参考资料汇总

关联专题

  • 编译、链接和装载 #47
  • 操作系统 #54
  • 内存管理 #38

持续集成

  • 代码仓库
  • 编译流程
  • 证书签名
  • 自动化
  • 相关工具
    • Jenkins
    • Travis CI
    • Bot
    • Fastlane

UITableView 那些事儿

  • UITableView vs. UICollectionView
  • 最佳实践:如何用好 UITableView(见 #12
  • 如何保证 UITableView 的滑动性能
  • UITableViewCell 高度计算问题
  • UITableView 的实现原理(cell 复用都被说烂了,来点彻底点的)
  • 如何自己徒手写一个 UITableView?

网络编程

  • 网络编程基本原理
  • HTTP 协议与 HTTPS
    • HTTP 状态码
  • Cookie
  • TCP/IP
  • Socket 编程
  • DNS
  • 异常处理
  • 离线发送
  • 弱网络
  • 缓存
  • 流量
  • 即时通讯
  • 通信协议
    • 通信协议
    • 增量更新
  • 移动端网络层的设计
  • 网络请求性能优化、监控
  • 网络请求安全
    • HTTPS
    • 对称加密和非对称加密
    • DNS 劫持
    • Authentication
    • ATS(App Transport Security)
  • 数据交换格式
    • JSON(NSJSONSerialization)
    • XML
    • Protobuf
  • ipv4,ipv6
  • URL Loading System
  • 相关框架和类
    • NSURL、NSURLComponent
    • 系统:NSURLSession、 NSURLConnection、CFNetwork、CFSocket
    • 第三方:AFNetworking、MKNetworkKit、ASIHTTPRequest、Alamofire
  • 测试
  • 网络层架构设计

相关专题:

  • #98
  • APP 上的 HTTPS 请求如何抓包?

storyboard 与布局适配

  • 设计规范
  • 相关技术
    • storyboard 和 xib
      • 如何通过代码从 storyboard 中初始化一个 view controller
    • AutoLayout
    • autoresizing
    • sizeclass(< Xcode 8)
    • Trait Variations(>= Xcode 8)
    • 纯代码
  • 最佳实践

重构与架构、设计模式

更多内容见 ShannonChenCHN/iOS-App-Architecture

  • 重构

    • 为什么要重构?
    • 什么情况下需要重构?
    • 如何重构?
  • 架构

    • 我们讨论架构究竟是在讨论什么?
      • 解耦
      • 响应式
      • 抽象
      • 数据流
        • Flux
        • Redux
    • 什么是架构,架构就是高大上?
    • 架构与业务的关系
    • iOS 移动端的架构
    • 如何设计 iOS 移动端的架构?
    • 如何成为一名合格的、优秀的架构师?
  • 设计模式

    • 什么是设计模式?
    • 为什么会出现设计模式,设计模式真的很神奇吗?
    • 设计模式与实战
    • iOS 开发中常用的设计模式
      • MVC
      • MVVM
      • MVP
      • VIPER
      • 通知
      • 观察者KVO
      • 工厂模式
      • 类簇模式
      • 命令模式
      • 单例模式
  • 编程范式

Read A Lot

每天半小时,吸收点滴营养

关于读中文翻译的文章还是英文原文:

  • 中文翻译的读起来更快,省时间
  • 如果时间充足,不急于获得结果,读读英文还是有利于锻炼英语阅读能力的,而且很多中文翻译并没有很好地表达出作者本意。

用百度还是 google?

  • 能用 google 还是尽量用 google,搜索更专业,更精准、更高效
  • 不能用 google 时再用百度也行,都是工具

精读与泛读

  • 精读:长时间、连续、深入、研究
  • 泛读:广度、浏览、快速抓住关键信息、筛选、归纳整理

如何泛读

平时每天浏览到一些比较不错的文章、源码时,可以先记下来,晚上再读一遍,做个简评。

读什么

  • 博客
  • 文章
  • 文档
  • 技术资讯
  • 源码

值得浏览的一些资料

网站

新媒体

  • 微博
  • 微信公众号
  • 知识星球(小密圈)
  • 极客时间
  • 小专栏

图片相关

  • 图片的本质
  • 图片的格式
    • PNG
    • JPEG
    • GIF
    • WebP
    • APNG
    • BPG
  • 图片编解码
  • 移动端的图片下载
  • 图片的显示、渲染
  • 图片处理
    • 美颜滤镜
    • 贴纸
    • 人脸识别
  • 生成图片

如何检测 URL 的合法性?

背景:在后台配置 URL 链接时很容易出现错误,比如多了一个空格,等到出现问题时,QA 就把问题抛给开发人员,开发人员再去查,这样下来效率很低,而且很多时候都是同样的问题,所以是否有方法能够让后台数据配置人员在配置数据时,就能检测出 URL 的合法性呢?

iOS Drawing

  • UIKit
    • UIBezierPath
  • Core Graphics
  • OpenGL ES
  • 屏幕图像绘制的原理 #26

Daily Questions

面试前必读

面试问题汇总

2020~2021年 iOS 面经

多线程与 Runloop

多线程知识点总结

  • 并发编程
    • 线程和进程、任务(Thread, Process and Task)
    • 串行和并行(Serial VS. Concurrent)
    • 同步和异步(Sync VS. Async)
    • 队列和线程(Queue VS. Thread)
    • 并发和并行(Concurrency VS. Parallel)
  • iOS 中的并发编程模型
  • iOS 中的几种多线程方案
  • 线程安全问题
    • 资源竞争
    • 死锁
    • 互斥锁
    • 资源饥饿(Starvation)
    • 优先级反转
  • NSRunloop
  • GCD 的实现

问题

  • 为什么不建议使用 NSThread 去自己管理线程,而更推荐 GCD 和 NSOperation?
  • GCD 线程池的实现?GCD 底层是如何调度线程的?

相关示例代码合集

Web View 与 Hybrid

  • UIWebView

  • WKWebView

  • Web view 与 JavaScript 的交互处理

    • WebViewJavaScriptBridge
    • 通过在 - webView: shouldStartLoadWithRequest: navigationType: 方法中进行拦截 url 再进行处理
    • 借助 JavaScriptCore 框架
  • UIWebView 中如何加载 webp 图片

    • 借助 NSURLProtocol 拦截 web view 中的图片下载请求
    • 借助 google 的 webp 解码库进行解码
    • 缓存图片以提高 web view 性能
  • cookie 同步问题

  • Web View 生成快照

  • JavaScriptCore

版本控制:Git 和 SVN

目录

  • 版本控制
  • Git
    • Git 的起源
    • Git 的安装和配置
    • SSH
    • Git 的基本用法
    • Git 的高级用法
    • Git 的原理
    • 使用 Git 时的常见问题
    • Git workflow
    • Gitlab、gitbucket
    • Git 源码
  • SVN
    • SVN 的起源
    • SVN 的基本用法
    • SVN 的高级用法
    • SVN 的原理
    • 使用 SVN 时的常见问题
  • Git 和 SVN 的比较

关联 issue

延伸阅读

正则表达式

  • 什么是正则表达式
  • 正则表达式能干什么
  • 正则表达式的一些规则
  • 常用正则表达式

How to become an awesome developer?

  • Fundamentals is always the key factor
  • Read a lot
    • Apple Documentation
    • Blog
    • Book
    • Trends
  • Read code of some great open source projects
  • WWDC
  • Practice, Practice, Practice: You're not learning unless you use it.
  • Write blogs and take notes: Teaching is the best way to learn.
  • Be open to share
  • Learning best practices
    • Writing readable code
    • Writing high-quality code
    • Be aware of edge-case(TDD)
  • Self-examination and summarizing
  • Always be aware of getting out of comfort zone, or you'll never level up.

音视频

  • 视频
    • 视频格式
    • 视频编码解码
    • 视频文件播放
    • 在线视频播放
    • 视频编辑
  • 音频
    • 音频格式
    • 音频文件播放
    • 在线音频播放
    • 录音
    • 语音识别
    • 音频处理
  • 其他
    • 耳机线路
    • 中断处理

Objective-C 语言

文本绘制和排版

  • 应用
    • UILabel 与富文本
    • 文字排版、电子书
    • 图文混排
    • 字体
  • 框架
    • UIKit
    • TextKit
    • CoreText

存储、数据库

  • 数据库
    • sqlite
    • nosql
    • realm
    • Leveldb
  • 文件系统
    • 沙盒
    • keychain
  • 存储手段
    • NSUserDefaults
    • 归档解档
    • property list
    • Core Data
    • 数据库

业务需求分类

1.按需求类型分

  • 普通需求
  • 特殊需求
    • 浏览器内核(UC 浏览器、firefox)
    • 排版引擎(微信阅读)
    • 音视频/图像处理(美图秀秀、哔哩哔哩)
    • 图表引擎
    • 通讯服务(即时通讯、直播)
  • 运营需求
    • 动态化
    • 配置系统
    • 统计系统(埋点)
      • 工具
        • 友盟
        • Google Analytics
        • Flurry
        • Growing.io
        • 神策
    • 事件流(IGListKit)
    • 推荐系统

2.按具体功能点分

  • 支付
    • 支付宝
    • 微信
    • 银联
    • Apple Pay
  • In-App Purchase
  • 社会化分享
  • 二维码的生成与识别
  • 推送通知
  • 启动图、应用启动广告
  • 新特性引导页
  • 定时器

3. 按平台分

4. 需求的落实

  • 拆分任务
  • 估时
  • 找出难点和重点
  • 制定实施计划

How to make a custom control

  • UIControl 是什么,能用来干嘛?
  • 为什么选择 UIControl 来继承?
  • 自定义一个 control 做哪些工作?
  • 如何通过 UIControl 监听 touch 事件?
  • UIControl 的 Target-Action 机制有什么优缺点?
  • 如何自定义 UIControl 的外观?
    • Image vs. CoreGraphics
    • UIView vs. CALayer

工程化

  • 组件化、Router、路由
  • Deep Linking
    • Custom URL Scheme
    • Universal Links
  • Custom URL Scheme
  • x-callback-url
  • 动态化
  • A/B Test
  • Dependency Manager
    • CocoaPods
    • Carthage
    • Swift Package Manager
    • npm:package manager for JavaScript
  • xcworkspace

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.