The old driver iOS weekly report, only presents valuable information for you.
You can also contribute to this project. If you find valuable information, articles, tools, etc., you can submit it to us in Issues , and we will deal with it as soon as possible. Remember to write the reason for your recommendation. Suggestions and comments are also welcome to Issues .
Developer – Developer Events
The PPT of the “Kaishou Technology Salon·iOS Technology Session” on April 23 has been released, and you can get it by sending “PPT” through the “Old Driver Technology Official Account”. Text finishing and video playback will be released later.
“T Chat | I am doing research and development in a big factory” series live broadcast debut
As developers, we may have asked ourselves or been asked these two questions countless times in our careers:
-
What are the R&D teams of first-tier manufacturers doing?
-
What are R&D experts looking at?
When I did a survey at the beginning of the year, I found that many people had the same problem. Therefore, Lao Driver Technology Weekly decided to cooperate with T Technology Salon to launch the “T Chat | I am doing R&D in a big factory” series of live broadcast programs, inviting R&D experts from first-line Internet manufacturers to share their team or personal R&D practice experience through online live broadcast. , try to answer both questions.
T Technology Salon mobile terminal technology practice (Shanghai field) text draft has been sorted out
- Android Coroutine Design Based on C++ – Zhang Tao
- Self-made rendering engine and application on the client side – Wang Yu
- Application of MVI paradigm on Jetpack Compose
Recommended for beginners
iOS | Illustrating the principles behind iOS signatures
@ChengzhiHuang : The author leads the reader to practice the whole process of applying for a certificate, and introduces the principles of the application, verification, and endorsement of the iOS development certificate. Suitable for beginners to read.
This article is included by the author of the article @doubleLLL3 self-recommended.
article
System Dilemma and Software Complexity, Why Are Our Systems So Complex
@xuyafei : The author has a feeling of reading “A Philosophy of Software Design”, and you can read the original text if you are interested.
The complexity of software can take many forms. It may be because the boundaries of the domain model are blurred, and seemingly simple changes require multiple code changes. It may be because the designer is lost in various patterns, and the project is overdone from the status quo. Engineering; probably due to messy code and lack of documentation, making it difficult to define the scope of the change. These ambiguities create complexity, and dependencies propagate complexity, increasing complexity.
The universe is in an irresistible process of quotient growth, and an isolated software system cannot resist complexity and chaos without introducing external forces. The essence of architecture is to be this binding force. “Clean Architecture” states that “the ultimate goal of software architecture is to meet the needs of building and maintaining the system with minimal labor costs”.
But the hardest thing about the software engineering discipline is the ability to abstract, because it has no standards, no methods, or even right or wrong. How to find a path that is neither excessive nor lacking in the inherent complexity of software is a lifelong task for software engineers.
Audio and video engineering example AVDemo 10, 11, 12, 13
@JonyFang : Audio and video engineering examples AVDemo 10, 11, 12, 13:
- iOS AVDemo 10 – video decapsulation, decapsulate H.264/H.265 from MP4 : implement decapsulation logic for video part in MP4 file and store the decapsulated encoded data as H.264/H.265 file;
- iOS AVDemo 11 – Video Encapsulation, from MP4 to MP4 : Implements the decapsulation logic of audio and video in MP4 files, and repackages the decapsulated audio and video encoded data as a new MP4 file;
- iOS AVDemo 12 – Video decoding, MP4 → H.264/H.265 → YUV source code : concatenate video decapsulation and decoding modules, input the decapsulated H.264/H.265 data to the decoding module for decoding, and store Decoded YUV data;
- iOS AVDemo 13 – Video rendering, rendering with Metal : connect the video capture and rendering modules in series, and input the captured video data to the rendering module for rendering;
Video download acceleration, 2.5 times optimization
@Speedboy : Introduced how to use the cronet library in quic to dynamically adjust the concurrent number of cached videos in the Sohu video iOS client. Mainly by testing the current network speed and combining the current network environment, device performance and device performance and other factors to control the number of concurrency within a reasonable range. This optimization brings 2.35 times the speed under the WIFI environment and 1.50 times the speed under the traffic environment.
Kuaishou iOS startup optimization practice
@Leo : The application startup speed directly affects the user experience, and the faster the startup, the higher the retention. Therefore, doing a good job of startup will not only help improve user experience indicators, but also promote the growth of core business. This article contains the practice of the Kuaishou team on iOS startup optimization. In addition to the conventional optimization methods, it also includes many aspects such as dynamic library lazy loading, TTI task scheduling, background startup, and anti-deterioration. It is recommended to read~
Huolala User Experience Optimization – Startup Optimization
@Red Paper : The startup optimization of Kuaishou was mentioned in the last article, and this article is the startup optimization plan of the Huolala team. The main optimization practices of the Huolala team in the early stage are optimizing serial interfaces, starting task management, long-tail governance (the time-consuming management of business APIs of low-end machines), and anti-deterioration. In addition, three lightweight tools are mentioned in the paper to analyze the time-consuming problem of starting the task process. I recommend everyone to read the two articles together~
New ideas for audio and video development in Flutter
@Lianshu : Flutter stands out among cross-end solutions because of its many excellent designs, and it has become the mainstream selection for cross-end development. Conventional business functions and logic modules can better achieve double-ended code consistency by applying Flutter. However, for some subdivisions, such as audio and video, which are highly sensitive to resource usage and computing performance, what Flutter can do may only be biased towards pure display, and more logic will be implemented in Native. Although it can meet the needs, it loses the advantages of Flutter’s cross-end. Xianyu has explored a new idea in this direction. The audio and video processing is refined into processing units, and then these processing units are organized into pipelines on the Flutter side to implement business logic, which maximizes the proportion of cross-end code while ensuring availability. Although Flutter is suitable for audio and video scenarios, there is some controversy in the industry. However, this scheme has certain novelty, and it is also worth studying and studying.
SwiftUI performance tips
@zvving : Compared with UIKit, SwiftUI has a different declarative writing method and rendering mechanism, which leads to the commonality of performance optimization ideas between the two, but also different challenges. The author of this article has sorted out common performance issues in SwiftUI to help you achieve a smooth user experience:
- Avoid heavy work on the main thread: threads isolate time-consuming operations such as network loading and database access, and increase data caching reasonably
- Avoid redundant redraw: reduce the redraw area, control the frequency, and reduce unnecessary data updates
- Reasonable use of SwiftUI components: replace AnyView with generics, use Lazy components in a large number of reused view scenarios, minimize the use of GeometryReader, etc.
- Some ways to use Instruments to locate performance issues
iOS performance optimization – analysis and exploration of off-screen rendering
@Damien : Off-screen rendering is a topic that is often mentioned in our development. Improper handling will cause the sliding frame rate to drop, but what is the implementation principle behind off-screen rendering? How should we optimize and avoid it? This article will start from 4 questions and introduce off-screen rendering in detail:
- What is offscreen rendering?
- Why does off-screen rendering cost performance?
- What are the common off-screen rendering scenarios?
- How to avoid off-screen rendering?
iOS makes iBeacon related SDK, cannot receive local notification after program is killed – Nuggets
@Barney : This article introduces the process of troubleshooting iBeacon’s failure to receive local notifications after the program is killed, and also introduces the simple use of iBeacon from scratch.
- Introduction to iBeacon
- iBeacon permission related
- iBeacon related code implementation
- The iBeacon code is in the SDK how to implement background and monitoring after kill
Moyu Weekly
@Moyu Weekly #51 : The 51st issue of Moyu Weekly is here, let’s take a look at the summary of this issue:
- Topic: Game version numbers resumed, 45 games received version numbers
- Interview module: brief description of
mmap
application - Excellent Blog: Themes for iOS In-App Purchases
- Learning materials: a small book “iOS High-performance App Architecture” just translated
- Development tools:
Quiver
is a notebook for programmers that makes it easy to mix text, code,Markdown
andLaTeX
. iTab is a browser plug-in that can customize the Tab page.
push in
The Old Driver Weekly Team has combined with the Knowledge Collection and the SwiftGG Translation Team to include a reliable internal referral position.
If you want to find a job , click here: https://www.yuque.com/iosalliance/article/bhutav
If you want to recruit , click here: https://www.yuque.com/iosalliance/article/ycyhf3
Of course, you are also welcome to pay attention to each of our weekly reports, and we will update the editorial posts at the bottom of each weekly report in a timely manner.
Follow us
We are “Old Driver Technology Weekly”, a technical public account that continues to pursue high-quality iOS content. Welcome to pay attention.
Follow Youli, pay attention to [Old Driver Technology Weekly], reply to “2021”, and receive 2017/2018/2019/2020 internal reference
Also supports RSS feeds: https://github.com/SwiftOldDriver/iOS-Weekly/releases.atom .
illustrate
Indicates the need for a tool, Indicates editor’s recommendation
Estimated reading time: Reads quickly (1 – 10 mins); Moderate (10 – 20 mins); Slow (20+ mins)
This article is reprinted from: https://github.com/SwiftOldDriver/iOS-Weekly/releases/tag/%23200
This site is for inclusion only, and the copyright belongs to the original author.