К тому же я считаю, что размер приложения — далеко не показатель качества написания кода.
Поставьте себя на место пользователя. Почему я должен скачивать очередное приложение более 100МБ и тратить свой трафик? При этом в приложении невозможно найти нужного функционала под кучей ненужного хлама.
Если вы делаете приложение для пользователей, а не для менеджеров:
— размер приложения должен быть минимален насколько это возможно (вы должны уважать трафик и время пользователя потраченые на ваше приложение)
— открытость приложения (убрать все ненужные элементы и сделать явным самый необходимый функционал)
Только пользователь будет оценивать вашу работу, не менеджеры и не другие программисты. Если работаете за зарплату и на удобства пользователей вам плевать — то смысл было писать эту статью?
Я думаю, что очень многое продиктовано требованиями продукта. Думаю только одни кастомные эмоджи на экране лайков — 20-30 классов.
Вы откройте приложение Facebook и посмотрите сколько реально экранов вы там можете найти, в коде может присутствовать скрытый функционал.
Сравните с приложениями из других социальных сетей.
Собрал статистику с пользовательского девайса по наиболее известным приложениям, например:
Vkontakte 14 МБ
Instagram 49 МБ
TechMedia(приложение от хабра) 52МБ
Steam 30МБ
Telegram 35МБ
Facebook (last update) 176 МБ
Что это за подход такой — давай выкинем все что дает нам Apple и сделаем как у крутых дядек в других конторах.
Давайте выкинем сториборды, а вместо обычных UIView наклепаем UIViewController со скрытыми методами( у UIViewController есть куча методов базовых для навигации и лайуота). А потом иди ищи где там что отваливается или ненажимается.
Если вы загоните все констрейнты в код — то как потом через кучу лет разработчикам найти нужный констрейнт и элемент?
Apple предоставляет хороший подход для разработки своих приложений как для программистов так и для дизайнеров интерфейсов. Люди пишут целые гайды под это дело. Почему никто не читает эти гайды и документацию?
P.S. Вы упомянули фейсбук с их огромной командой. Но почему тогда приложение фейсбука весит более 130МБ для десятка экранов. Видимо «хорошие спецы» его клепают.
Но давайте вспомним, что это СССР — транзисторы не так легко доступны за железным занавесом. А электронно-лучевые трубки одинаково отстойны как в России, так и на Западе!
Поэтому Брусенцов разрабатывает базовый элемент из миниатюрных ферритовых сердечников и полупроводниковых диодов, который способен работать как регулируемый трансформатор тока.
Электронно-лучевая трубка (ЭЛТ) это первые мониторы которые работают даже сегодня. Советские компьютеры были сделаны на электронных лампах.
Какой железный занавес для транзисторов? первый советский транзистор появился примерно в тоже время что и американский. Они были дорогими, но небыли контрабандой из США.
Ферритовые сердечники и электронные лампы несут разную функциональную нагрузку. Это такое же сравнение сегодня как для оперативной памяти/кэш-процессора/жесткого диска.
В вашей статье вы едите «в Москву через Владивосток».
Добавляете в базовый класс метод
- (IBAction) closeKeyboardByGesture.....
В любом xib/storyboard файле вы можете добавить Tap Gesture прямо на view/viewcontroller и вынести ваш селектор простым перетягиванием IBAction к базовому методу.
P.S.
Еще стоит проверить как вы формируете таблицу. Возможно в делегатах таблиц понапихано много всего.
Тестирование стоит проводить на реальном устройстве. Симулятор привязан к железу вашего компа и может давать неверные результаты измерений.
— Вообще-то UITextView/UITextField это поля для редактирования текста и они отлавливают обработку нажатий
— Вы используете NSAttributedString. Этот класc используется для вывода текста со стилями.
Попробуйте использовать:
— UILabel с простыми строками NSString
— Можно попробовать через чистый CoreText делать вывод
merge xcodeproj будет всегда когда будут изменяться:
— параметры компиляции/ профайлы
здесь надо сгенерировать всей команде одинаковые профайлы ( с учетом всех девайсов в разработке)
позволить менять параметры только одному человеку
— меняется дерево файлов и папок в IDE
все новые файлы добавлять в проект сначала в нужные папки на диске, а потом перетягивать в проект через «create folder reference».
Если у вас Краснодаркий МТС — то тарифы без роуминга.
Если же вы рискнете купить местный Winmobile — то у вас будет технический роуминг с МТС.
Так что если будете в Крыму желательно иметь МТС симку с материковой России.
Для гостей с Украины прийдется покупать новую симкарту ибо полностью блокируются все украинские операторы на территории Крыма.
у МТС есть Супербит по цене 250р 3гб в месяц с головой хватает для обхода блокировок в Крыму.
WinMobile это еще та гадость у них технический роуминг с МТС и звонки по стоимости как в другую страну.
это не подозрения
аэрофлот давно это в правилах пишет ссылка
В соответствии с Приложением №1 Правил проведения предполетного и послеполетного досмотров, утвержденных приказом Министерства транспорта Российской Федерации от 25 июля 2007 г. №104 запрещено провозить на борту воздушного судна пассажирами в зарегистрированном багаже и в вещах, находящихся при пассажирах, следующие опасные вещества и предметы: Малогабаритные средства для личного передвижения, работающие на литиевых батареях
и в чем тогда отличие swift от objective-c, только лишь в этом?
У Swift, безусловно, есть недостатки, в частности, связанные со средой разработки. Xcode время от времени падает, отключается подсветка синтаксиса или компилятор отказывается компилировать код
…
В первую очередь мы понимаем, что Apple развивает и будет развивать Swift, тогда как Objective-C уже давно не получал существенных изменений (не будем учитывать изменения, связанные с совместимостью Swift ). Переход на Swift сейчас — это в какой-то степени шаг в будущее.
единственное логическое применение swift это графические обертки над низкоуровневыми компонентами из objective-c.
Поставьте себя на место пользователя. Почему я должен скачивать очередное приложение более 100МБ и тратить свой трафик? При этом в приложении невозможно найти нужного функционала под кучей ненужного хлама.
Если вы делаете приложение для пользователей, а не для менеджеров:
— размер приложения должен быть минимален насколько это возможно (вы должны уважать трафик и время пользователя потраченые на ваше приложение)
— открытость приложения (убрать все ненужные элементы и сделать явным самый необходимый функционал)
Только пользователь будет оценивать вашу работу, не менеджеры и не другие программисты. Если работаете за зарплату и на удобства пользователей вам плевать — то смысл было писать эту статью?
Вы откройте приложение Facebook и посмотрите сколько реально экранов вы там можете найти, в коде может присутствовать скрытый функционал.
Сравните с приложениями из других социальных сетей.
Собрал статистику с пользовательского девайса по наиболее известным приложениям, например:
Vkontakte 14 МБ
Instagram 49 МБ
TechMedia(приложение от хабра) 52МБ
Steam 30МБ
Telegram 35МБ
Facebook (last update) 176 МБ
Давайте выкинем сториборды, а вместо обычных UIView наклепаем UIViewController со скрытыми методами( у UIViewController есть куча методов базовых для навигации и лайуота). А потом иди ищи где там что отваливается или ненажимается.
Если вы загоните все констрейнты в код — то как потом через кучу лет разработчикам найти нужный констрейнт и элемент?
Apple предоставляет хороший подход для разработки своих приложений как для программистов так и для дизайнеров интерфейсов. Люди пишут целые гайды под это дело. Почему никто не читает эти гайды и документацию?
P.S. Вы упомянули фейсбук с их огромной командой. Но почему тогда приложение фейсбука весит более 130МБ для десятка экранов. Видимо «хорошие спецы» его клепают.
Благодаря хабраэффекту вы делаете хорошую рекламу этим хэштегам.
Электронно-лучевая трубка (ЭЛТ) это первые мониторы которые работают даже сегодня. Советские компьютеры были сделаны на электронных лампах.
Какой железный занавес для транзисторов? первый советский транзистор появился примерно в тоже время что и американский. Они были дорогими, но небыли контрабандой из США.
Ферритовые сердечники и электронные лампы несут разную функциональную нагрузку. Это такое же сравнение сегодня как для оперативной памяти/кэш-процессора/жесткого диска.
Добавляете в базовый класс метод
В любом xib/storyboard файле вы можете добавить Tap Gesture прямо на view/viewcontroller и вынести ваш селектор простым перетягиванием IBAction к базовому методу.
Еще стоит проверить как вы формируете таблицу. Возможно в делегатах таблиц понапихано много всего.
Тестирование стоит проводить на реальном устройстве. Симулятор привязан к железу вашего компа и может давать неверные результаты измерений.
— Вы используете NSAttributedString. Этот класc используется для вывода текста со стилями.
Попробуйте использовать:
— UILabel с простыми строками NSString
— Можно попробовать через чистый CoreText делать вывод
— параметры компиляции/ профайлы
здесь надо сгенерировать всей команде одинаковые профайлы ( с учетом всех девайсов в разработке)
позволить менять параметры только одному человеку
— меняется дерево файлов и папок в IDE
все новые файлы добавлять в проект сначала в нужные папки на диске, а потом перетягивать в проект через «create folder reference».
Если же вы рискнете купить местный Winmobile — то у вас будет технический роуминг с МТС.
Так что если будете в Крыму желательно иметь МТС симку с материковой России.
Для гостей с Украины прийдется покупать новую симкарту ибо полностью блокируются все украинские операторы на территории Крыма.
WinMobile это еще та гадость у них технический роуминг с МТС и звонки по стоимости как в другую страну.
Можете поправить терминологию и формулы, добавьте русский перевод:
Доделайте ИИ для работы с этой бюрократией и клиенты у вас никогда не закончаться.
аэрофлот давно это в правилах пишет
ссылка
и в чем тогда отличие swift от objective-c, только лишь в этом?
единственное логическое применение swift это графические обертки над низкоуровневыми компонентами из objective-c.
NSDataDetector распознает: даты, телефонные нормера, адреса и т.д. (все типы можно увидеть в NSTextCheckingType).