СпонсорУвійтиПодати
Блог

Через пам'ять Mac дорожчають. Що б я зробив у своєму застосунку для Mac

Від Justinas Rolando, розробника MacPip

Коротка відповідь

2 листопада 2026 р.: Apple заявила, що постачання Mac та iPad буде обмеженим у грудневому кварталі, здебільшого через пам'ять, і що після цього вона очікує подальшого зростання цін на пам'ять. Apple вже підвищила ціни на Mac (25 червня 2026 р.), а MacBook Neo, який тепер коштує 699 USD, має 8 GB пам'яті без варіанта з більшим обсягом. Для розробників застосунків для Mac це означає більше клієнтів із Mac на 8 GB та зі старішими Mac, якими вони користуються довше. Виміряйте використання пам'яті вашим застосунком на Mac із 8 GB, вкажіть, що йому потрібно, і не дозволяйте стрічці оновлень пропонувати збірки Mac, які не можуть їх запустити.

У понеділок Apple звітувала за вересневий квартал, і те, про що я досі думаю, було не про виручку. А про пам'ять. У матеріалі MacRumors про дзвінок сказано, що Apple очікує обмеження постачання Mac та iPad у грудневому кварталі, «насамперед через пам'ять», і вважає, що ціни на пам'ять зростатимуть і далі. Джон Тернус, на своєму першому дзвінку як CEO, назвав ситуацію з пам'яттю «безпрецедентною».

Я не продаю RAM, і ви теж. Але Mac, на яких працюють наші застосунки, щойно подорожчали, а найдешевший має 8 GB. Це дещо змінює для всіх, хто робить застосунки для Mac.

Що насправді сталося

Чому розробнику застосунків для Mac це важливо

З цього випливають дві речі, і жодна не є прогнозом, лише арифметика.

По-перше, більше ваших нових клієнтів матимуть 8 GB. Neo це найдешевший Mac, і пам'ять у ньому згодом не додати. Якщо ваш застосунок непомітно налаштовували на MacBook Pro з 36 GB, він ще ніколи не зустрічався зі своїми найновішими користувачами.

По-друге, люди тримаються за свій Mac, коли новий коштує на 200 USD дорожче. Це означає більше клієнтів зі старішими чипами та старішими версіями macOS, ніж у звичайний рік. Ваша мінімальна версія macOS і стрічка оновлень важать більше, ніж зазвичай.

Що б я перевірив цього тижня

Це мої власні кроки, а не Apple.

  1. Виміряйте свій застосунок на 8 GB, з іншими відкритими застосунками. Ніхто не запускає ваш застосунок наодинці. Відкрийте Safari з десятком вкладок, застосунок для чатів і свій застосунок, а потім виконайте найважчу для нього дію. Стежте за колонкою Memory в Activity Monitor і графіком Memory Pressure внизу. Жовтий колір це попередження, червоний означає, що macOS важко.
  2. Отримайте реальне число. У Terminal команда footprint YourApp показує, скільки пам'яті ваш застосунок справді використовує, а leaks YourApp шукає пам'ять, яку ви забули звільнити. У Xcode індикатор пам'яті в навігаторі Debug та інструменти Allocations і Leaks показують, куди вона йде. Посібник Apple про зменшення використання пам'яті застосунком докладно це розбирає.
  3. Уважно перегляньте кеші. Найчастіші винуватці в малих застосунках для Mac: кеші зображень, які ніколи не зменшуються, цілі файли, прочитані в пам'ять там, де вистачило б потоку, і списки історії, що зберігають усе назавжди. Обмежте їх.
  4. Обережно з локальними моделями ШІ. Якщо ваш застосунок завантажує модель для роботи на Mac, її розмір конкурує з усім іншим на Mac з 8 GB. Запропонуйте меншу модель або прямо скажіть, що для великої потрібно 16 GB.
  5. Напишіть, що потрібно вашому застосунку. Вкажіть мінімальний обсяг пам'яті та версію macOS на своєму сайті й у картці застосунку. Покупець із Neo краще дізнається про це до купівлі, ніж після.
  6. Не надсилайте оновлення на Mac, які не можуть їх запустити. Якщо ви розповсюджуєте застосунок поза Mac App Store через Sparkle, задавайте sparkle:minimumSystemVersion для кожного випуску, а починаючи зі Sparkle 2.9 ще й sparkle:hardwareRequirements зі значенням arm64 для збірки лише під Apple silicon. Обидва описані в документації Sparkle про публікацію. Тоді хтось зі старішим Mac залишиться на останній версії, що працює, а не отримає таку, що не відкриється.
  7. Перевірте, на чому працює ваш застосунок. Якщо ви випадково прибрали підтримку Intel, перевірка універсального бінарного файлу прочитає вивід lipo і скаже вам.

Нічого з цього не потребує переписування. У більшості застосунків, які я бачив, є один-два кеші, що виросли непомітно, а виправлення займає півдня.

Чого б я не робив

Я б не писав «оптимізовано для 8 GB» у пості про запуск, якщо не виміряв це на такому Mac. І я б не піднімав власну ціну лише тому, що Apple підняла свої. Ваші витрати не змінилися, а люди з вужчим бюджетом це помічають. Якщо ви все одно думаєте про зміну ціни, калькулятор цін порівнює разову ціну з підпискою після комісій.

Погляд MacPip

На MacPip картки застосунків скануються автоматично, коли їх подають, а синя галочка означає лише те, що людина випробувала застосунок у певний день. Жодне з цього не перевіряє пам'ять, тож чесна відповідь про те, що потрібно вашому застосунку, має прийти від вас. Малі та легкі застосунки тут і так почуваються добре: подивіться застосунки для рядка меню і застосунки для продуктивності. Якщо ви запускаєте знижену ціну для тих, хто стежить за витратами цього сезону, її місце в розділі Знижки, з датою завершення.

Також нове сьогодні: перевірка appcast для Sparkle. Вставте свій appcast.xml, і вона перевірить кожен випуск: версію, розмір завантаження й підпис, мінімальну версію macOS та апаратну вимогу, а потім простими словами скаже, чого бракує. Усе працює на сторінці, нічого не надсилається. А якщо вашого застосунку для Mac ще немає на MacPip, додати його безкоштовно.

Джерела

Читайте далі

Подайте свій застосунокБезкоштовні інструменти для розробників