AFNetworking: прощание с легендой iOS-разработки

18 июл 2025

Это архивный репозиторий и может быть устаревшим.

33,370
10,605
12
3 года

Когда в январе 2023 года на GitHub появился коммит с пометкой "AFNetworking is Deprecated", это стало концом эпохи. Библиотека, которая когда-то революционизировала работу с сетью в iOS-приложениях, официально ушла в архив. Но её влияние на мобильную разработку невозможно переоценить — более 33 тысяч звёзд на GitHub и использование в тысячах приложений говорят сами за себя.

Что такое AFNetworking и почему её все любили

AFNetworking появилась в 2011 году как ответ на болезненные проблемы iOS-разработчиков:

  • Громоздкий код для простых сетевых запросов
  • Отсутствие удобных абстракций для работы с JSON
  • Сложности с загрузкой и кэшированием изображений
  • Проблемы с обработкой ошибок

Библиотека предлагала элегантные решения для всех этих задач. Вот что делало её особенной:

1. Простота базовых запросов

Вместо десятков строк boilerplate-кода:

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager GET:@"http://example.com/resources.json" parameters:nil progress:nil success:^(NSURLSessionTask *task, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
} failure:^(NSURLSessionTask *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];

2. Встроенная сериализация JSON

Больше не нужно вручную парсить данные — библиотека делала это автоматически с правильной обработкой ошибок.

Реклама

3. Загрузка изображений одной строкой

[imageView setImageWithURL:[NSURL URLWithString:@"http://example.com/image.png"]];

4. Мониторинг сетевой доступности

[[AFNetworkReachabilityManager sharedManager] startMonitoring];

Архитектура и ключевые компоненты

AFNetworking была построена вокруг нескольких основных модулей:

  1. AFURLSessionManager — ядро для работы с NSURLSession
  2. AFHTTPSessionManager — удобные HTTP-методы (GET, POST и др.)
  3. Сериализаторы — для преобразования запросов и ответов
  4. AFNetworkReachabilityManager — мониторинг соединения
  5. AFSecurityPolicy — настройки SSL/TLS

Почему проект закрыли и что использовать вместо него

Основные причины депрекации:

  1. Смещение экосистемы в сторону Swift
  2. Появление более современных альтернатив
  3. Сложности поддержки устаревшего Objective-C кода

Официальная рекомендация — переход на Alamofire, Swift-версию библиотеки от тех же разработчиков. Для существующих проектов есть варианты:

  1. Подключение исходников — можно скопировать AFNetworking прямо в проект
  2. Форк репозитория — создать собственную поддерживаемую версию

Практические советы по миграции

Если вы всё ещё используете AFNetworking:

  1. Для новых проектов однозначно выбирайте Alamofire
  2. В существующих приложениях рассмотрите постепенную миграцию
  3. Для критически важных проектов — создайте форк с необходимыми исправлениями
  4. Используйте официальный гайд по переходу

AFNetworking оставила неизгладимый след в iOS-разработке, показав, какими должны быть хорошие сетевые библиотеки. Её депрекация — это не конец, а естественный этап эволюции экосистемы. Теперь у нас есть более современные инструменты, но принципы, заложенные в AFNetworking — простота, надёжность и удобство — остаются актуальными.

Как говорил один из создателей библиотеки Матт Томпсон: "Хороший код — это тот, которым приятно пользоваться". AFNetworking точно соответствовала этому определению.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.