Update SPPermission and Hater Library

Update SPPermission and Hater Library 3r3403. 3r3-31. - “ Some kind of library, someone updated where did heiter? Why do I, an excellent developer, need to spend time on this article? 3r33333. ”
 3r3403. 3r33333.  3r3403. might think you, my dear friend. No need to waste time. This is just an evening fiction with a share of unfunny humorous ones. The text will be about the library 3-3320. RequestPermission
and about its mysterious author. 3r33333.  3r3403. Project Page , description, a huge section Donate put in. Greedy what! 3r33333.  3r3403. 3r33333.  3r3403. But nevertheless we will pass to the project: 3r33390...
+ 0 -

Drag & Drop in your iOS applications

 3r3447. 3r3-31. Drag & Drop in your iOS applications Drag & Drop working in iOS 11 3r340346. and 3r340405. iOS 12 3r340346. , Is a method of graphical asynchronous copying or movement of data both within one application and between different applications. Although this technology is about 30 years old, it has literally become a “breakthrough” technology on 3r340405. iOS 3r334406. due to the fact that when you drag something into iOS 3r334406. , 3r340345. multitouch allows you to freely interact with the rest of the system and collect data to reset from different applications. 3r34415.  3r3447. 3r34034. 3r34415...
+ 0 -

Alamofire + DictionaryCoding = NetworkService

When I wanted to develop my library for network requests for swift, I came across article
 
Why you shouldn’t use delegates in Swift I ran through the article and made my decision.
 
TL; DR
 
 
3r3196. 3r3197. class NetworkService {
Alamofire.request (URL_MOVIE_LIST, method: .get, headers: headers) .responseJSON {response in
switch response.result {
case .success:
let code = response.response? .statusCode
if (code == 200) {
if let result = response.result.value {
let jsonData = result as! NSArray
do {
let decoder = DictionaryDecoder ()
for moviesData in jsonData {
let moviesResp = try ...
+ 0 -

How to save the project from extra pounds

 3r3306. 3r3-31. How to save the project from extra pounds  3r3306. Hello! My name is Ilya, I am an iOS developer at Tinkoff.ru. In this article I want to talk about how to reduce duplication of code in the presentation layer using protocols.
 3r3306.
 3r3306.

What is the problem?


 3r3306. As the project grows, the amount of code duplication grows. This becomes not immediately noticeable, and it becomes difficult to correct past mistakes. We noticed this problem in our project and solved it with one approach, let's call it, conditionally, traits.
 3r3306.
 3r3306.

An example from the life of


 3r3306. The approach can be used ...[/h][/h]
+ 0 -

Codable for API requests and how to put order in the code

 3r3-3000. 3r3-31. Hi, Habr! 3r33988.  3r3-3000. 3r33988.  3r3-3000. Starting with Swift ? we have access to the new Codable protocol, which makes it easy to encode /decode models. In my projects there is a lot of code for API calls, and over the past year I have done a lot of work on optimizing this huge array of code into something very light, concise and simple by killing repetitive code and using Codable even for multipart queries and url query parameters. So it turned out a few excellent classes in my opinion for sending requests and parsing responses from the server. As well as a convenient ...
+ 0 -

Testing the presenter using PromiseKit

The MVP pattern in developing mobile applications is a fairly simple way to offload the ViewController and take out some of the logic into the presenter. The presenter starts to acquire a logic that is easy to test.
 
Let there be a screen MelodyListViewController showing the list of melodies. He has a presenter MelodyListPresenter , which tells the ViewController what to show. These presenter will take from the service MelodyService . MelodyService It is a wrapper over a database and an api client that downloads melodies. If the network is available, the service takes the ...
+ 0 -

And in your iOS applications IBOutlet already private?

And in your iOS applications IBOutlet already private?
 
 
You probably used Storyboard or XIB for layout of interfaces? It's fine to make code out of code, but sometimes it's much easier to understand how some of the interface components are arranged by seeing it, and not having read it. In this entry, I want to discuss the necessity of using the modifier private for IBOutlet. Enter , you are welcome.
And how do you generally prefer to ask IBOutlet?
@IBOutlet private weak var someLabel: UILabel!
@IBOutlet weak private var someLabel: UILabel!
@IBOutlet private weak var someLabel: UILabel?
@IBOutlet weak private var someLabel: UILabel?
@IBOutlet private ...
+ 0 -

Very Special Event: how we watched the presentation of Apple and what we think about it

Very Special Event: how we watched the presentation of Apple and what we think about itFrom the presentation of Apple, which was due on Sept. 1? nothing much was expected: three new iPhone models and a new version of Apple Watch - they knew about these new products in advance. Nevertheless, we in Avito could not miss this event. When a couple of days before the Very Special Event, we realized that a company of those who did not want to watch the broadcast on their own was formed, then they decided to invite our friends - iOS developers from other companies. View the event together, discuss new items (and how they affect the development of applications for iOS), eat shaurma, drink ...
+ 0 -

RxSwift part 1

RxSwift part 1
 
Kind time of the day, Khabarovsk. In this series of articles, I would like to talk about reactive programming, namely, the
framework.  
RxSwift . Habré and the network had articles on RxSwift, but, in my opinion, they are too difficult for beginners. Therefore, if you begin to comprehend reactive programming in iOS, then I ask under the cat.
tells us. Wikipedia .
 
In other words, in the case where we program in an imperative style, we write in the code a set of instructions that must be executed sequentially. The reactive style of programming follows several other concepts. With the reactive ...
+ 0 -

Control over resources. Set up SwiftGen

Control over resources. Set up SwiftGenProbably, in every big iOS-project - long-livers you can come across icons that are not used anywhere, or access localization keys that have not existed for a long time. Most often, such situations arise because of inattention, and the best cure for inattention is automation.
 
In the iOS-command HeadHunter we pay much attention to automation of routine tasks, which the developer can face. With this article, we want to start a series of stories about the tools and approaches that simplify our daily work.
 
Some time ago we managed to take the application resources under control with the help of ...
+ 0 -