• Как сделать анимацию в swift 4?

    doublench21
    @doublench21 Куратор тега Swift
    Писать такие анимации вручную достаточно проблематично и сложно. Все эти рендеры делаются достаточно просто использую скажем Lottie или QuartzCode,

    https://medium.com/@christopherdeane/native-app-an...

    www.quartzcodeapp.com
    Ответ написан
    Комментировать
  • Как делают мобильные приложения?

    Бэкенд пишут на чём угодно. Если у сайта фронтенд на javascript написан - это же не значит, что и на бэкенде должен быть javascript, с мобильными приложениями точно так же.
    Ответ написан
    5 комментариев
  • Как сделать анимацию в Swift 4?

    doublench21
    @doublench21 Куратор тега Swift
    Обычно делают подклассы UITabBarItem и UITabBarController. Переопределеют нужные св-ва и методы. В первую очередь переопределить св-во selectedItems на свой подкласс и методы выбора по нажатию, добавив в них layer анимацию.
    Что касается анимации, то я бы провел path залив его цветом .clear. Путь - круг и идущая от него линия. Причём, если элемент самый крайний, то линия ток слева или справа, для остальных она в обе стороны. Останется добавить лишь strokeEndAnimation, которая будет заливать цветом этот путь идя от начало пути в конец. Об этом хорошо написано тут: https://www.calayer.com/core-animation/2017/12/25/...

    Причём вам нужно определить заливку для всех возможных случаев. То есть пути на самом деле будут пересекаться но не будут одним единым путём. Скажем анимация перехода с первого к последнему будет закрашивать у всех промежуточных лишь прямую. Ну и так далее.
    Ответ написан
    Комментировать
  • Как добавить ViewController в СollectionViewCell?

    doublench21
    @doublench21 Куратор тега Swift
    СollectionViewCell это View, а TableViewController это ViewController, как бы совсем разные вещи. Имейте чёткое представление об этом. Правильный вопрос: Могу ли я в СollectionViewCell добавить TableView или вообще говоря любой View? (Вы это спрашивали?)

    Ниже представлены ссылки на тему вопроса:
    https://ashfurrow.com/blog/putting-a-uicollectionv...
    https://medium.com/@adinugroho/fixed-height-uicoll...
    https://stackoverflow.com/questions/24126708/uicol...
    https://stackoverflow.com/questions/17398058/is-it...
    Ответ написан
    1 комментарий
  • Проблема с импортом подов, как решить?

    Sorgot
    @Sorgot
    Добавили "use_frameworks!" ?
    https://stackoverflow.com/questions/41210249/why-d...
    Думаю стоит добавить podfile и что выводиться при pod update
    К тому же возможно стоит сделать pod install и вообще удалить все поды и установить заново
    Ответ написан
    Комментировать
  • Как подсчитать числа с использованием %?

    Grizzzzlie
    @Grizzzzlie
    It’s me
    а 10% от чего ? Ты прибавляешь 50 к непонятной для программы числу. Ты можешь сделать следующее:
    50+100 сохранить в num(переменную), а потом из этого num%20 => найти процент от этого числа.
    Если я конечно тебя правильно понял
    но прибавлять 50+20% нет такого даже в математике
    Ответ написан
    4 комментария
  • Как добавить в Label более одной строчки?

    doublench21
    @doublench21 Куратор тега Swift
    textLabel.numberOfLines = 0, либо в Xcode, пункт Lines у UILabel.
    Ответ написан
    Комментировать
  • Как в игре отключить горизонтальный режим экрана?

    doublench21
    @doublench21 Куратор тега Swift
    Это делается очень просто.
    Без кода https://stackoverflow.com/questions/35285392/lock-...

    Код
    https://www.hackingwithswift.com/example-code/uiki...
    Ответ написан
    Комментировать
  • Не могу прокинуть делегат из контейнера, как сделать правильно?

    В таких случаях обычно в homeVC сохраняют вложенные VC в var. Тогда во втором случае делегат не понадобится, а вот из вложенных VC данные или команды получают через делегата. Скорее всего у тебя нет сильной ссылки на VC2 и его делегат поэтому становится nil.
    Ответ написан
    Комментировать
  • Как рассчитать объемы серверных мощностей для социальной сети?

    @InoMono
    Вот как раз что именно для успешной соц. сети и смысла нет сразу.
    Имеет смысл докупать мощности по мере роста сети.

    Ибо разница очень и очень велика на начальном этапе и то что будет через год-два. Ну это если проект "взлетит" конечно. Это я в предположении, что инвесторов не интересует невзлетающие проекты. Значит, рассчитываем на то, что н взлетит.

    Кроме того, если вы разработчики - то вам самим следует это знать.

    Если вы способны создать крайне эффективный проект, то:

    StackOverflow буквально несколько лет назад уже был известным и раскрученным на весь мир проектом. Наверное самым известным среди проектов подобного рода. И все миллионы пользователей, которые активно пишет на нем и активно читают - обслуживало всего навсего 2 сервера, под фронтенд и СУБД (не считая резервных/репликационных, само собой). Это были сервера на неплохом железе, но не дорогие. Поищите в сети, есть подробности.

    Вдумайтесь, весь мир, миллионы посетителей, активные пользователи, нагружающие СУБД операции поиска и записи. И всего пара серверов.

    В то же время мне доводилось видеть и прямо таки обратные примеры. Когда примерно такое же железо и пару тысяч посетителей в день не может вытянуть.... Ну говнокодеры делали, чего взять.

    ---------

    Оцените масштаб и необходимая скорость реагирования на рост.

    1. Если вы прям серьезно хотите, то вам в микросервисную архитектуру (Kubernetes вам в помощь) и в облака.
    2. Однако я полагаю, что первые пару лет посетителей не будет много. Поэтому начать можно вполне себе с VDS просто переключая тариф на постарше и постарше. Это копейки. Единственно, что я сразу бы вынес картинки/видео в облака, это очень удобно и не заботишься ни о месте на диске не о конфигурировании ПО. Использовать для этого специализированные сервисы: Openstack Swift (много хостеров), Google Storage, AWS S3 и т.п. При вынесении подобной тяжелой вещи с сервера - движок будет совершенно не требовательным.

    ---------

    Вам тут в соседнем посте правильно ответили:

    Стоимость разработки и раскрутки этой хрени огромна на фоне стоимости серверов.
    Сервера - копейки стоят.

    Если инвестор начитает уже и тут докапываться, то, очевидно, что команда будет пахать за копейки.

    А так то расходы на команду в неделю могут быть больше чем за все сервера за год.
    В течение первых лет пяти раскрутки.

    И только по мере стабилизации сети, меньших объемов работ, но большей масштабности серверов - стоимость серверов будет превышать стоимость услуг людей.

    ---------

    Если бы я начал этот проект сам:
    то заложил бы на первый год сумму 6000 рублей в месяц на два сервера (основной и репликацию, движок и БД на одной машине, картинки/видео на отдельном облачном сервисе). Причем это VDS, а не выделенный сервер.
    На второй год 40 000 рублей в месяц (два кластера по 3 сервера в каждом).
    Начиная с третьего года ушел бы в облака.
    Там, полагаю, ценник был бы на уровне 30 000 - 60 000 рублей в месяц первое время.
    С четвертого года рассчитывал бы на 90 000 - 180 000 расходов в месяц.
    После этого начал бы подумывать, не уйти ли с облаков на свою инфраструктуру.

    Но это про мою гипотетическую архитектуру.
    Возможно у вас другая цель и другая архитектура.

    ---------------

    Как считать:

    Прикидываем количество пользователей.
    Прикидываем объемы генерируемого ими контента (причем это и фото и видео и сообщения и технические логи тоже не забыть, их немало)
    Умножаем на 3 (в серьезных системах нужно двойное реплицирование: оригинал и 2 копии)
    И добавляем еще 1 копию под разработку и "ранний доступ к бете", сплит-тестирование и пр.
    Дальше тут уже зависит от вашей архитектуры. Как я уже писал микросервисная архитектура хороша для взрывного роста, но довольно требовательна при небольшой нагрузе. Если вы прям не на 100% уверены в взрывном росте - лучше от нее отказаться, она и в разработке и в поддержке геморнее. Но зато масштабируется классно, это у нее не отнять.
    Дальше, если это будет на весь мир - нужно подумать насчет пары-тройки кластеров разной географии.

    -----------------

    Если у вас нет информации об количестве пользователей и объемах генерируемого ими контента - говорить тут конкретику невозможно.
    Ответ написан
    Комментировать
  • Можно ли в iOS приложении принимать платежи через свой эквайринг?

    trikono
    @trikono
    Novice publisher
    Вопрос в том, что Вы продаете! Если цифровой контент, предоставляющий расширенный доступ, дополнительные функции или какие-либо преимущества пользования Вашим приложением, то это однозначно IAP, где платежи идут через Apple и Вы платите им комиссию. Если же Вы сервис по продаже товаров и услуг посредством приложения (билетная касса, интернет-магазин итп...), то да - встроенный отдельный эквайринг для приема платежей через различные платежные системы.
    Ответ написан
    1 комментарий
  • Верстка под ios, управление поведением софтверной клавиатуры, можно ли добавлять свои кнопки?

    doublench21
    @doublench21
    Ничего такого нельзя. Максимум это.
    Ответ написан
    Комментировать
  • Как изменить высоту ячейки при изменении text View Swift 4?

    doublench21
    @doublench21 Куратор тега Swift
    Так пробовали:
    tableView.rowHeight = UITableViewAutomaticDimension
    tableView.estimatedRowHeight = 44 // или что своё
    где
    UITableViewAutomaticDimension, the table view is told to use the Auto Layout constraints and the contents of its cells to determine each cell’s height.
    Ответ написан
  • Как сделать, чтобы при вызове AlertController не затемнялся задний фон и объекты были кликабельны?

    doublench21
    @doublench21 Куратор тега Swift
    Наверное никак, да собственно это и есть самое верное поведение. Если Вам нужно кликать и не переносить акцент на всплывающее модальное окно, то вам лучше не использовать UIAlertController, а сделать своё модальное окно, с блекджеком и ... ну вы поняли

    Хотя модальное окно вам все равно не даст возможности кликать на элементы другого окна под ним. Если Вам нужно кликать, то лучшим вариантом будет анимированный UIView. Изначально он hidden, по какому-либо событию он появляется. UIView как ещё один элемент вашего окна.
    Ответ написан
    Комментировать
  • Почему не срабатывают события UITextField?

    doublench21
    @doublench21 Куратор тега Swift
    Это потому, что событие valueChanged не применимо к UITextField. Для этих целей существует UITextFieldDelegate. Или, если ты не знаешь что это такое, то просто посмотри внимательно, там есть такие события как Editing Changed/Did Begin/Did End(в том же списке, где ты и выбрал valueChanged).
    Ответ написан
    4 комментария
  • Как обработать JSON данные полученные с помощью Alamofire в Swift4?

    doublench21
    @doublench21 Куратор тега Swift
    Вот странные люди сюда забегают. Ты вообще пытался привести твой кусок JSON в человека-подобный вид, что бы в первую очередь самому увидеть, какая у тебя там структура. Вот ты пишешь guard let email = json["email"].string else, но если бы ты внимательно смотрел на свой JSON, то увидел бы:
    5a58a5d5b1573858264360.jpeg, что у тебя идёт массив, а лишь в нём ты работаешь с самим объектом, у которого ты и вытаскиваешь "email".

    for (index,subJson) in json {
        print(subJson["email"].string)
    }
    Ответ написан
    2 комментария
  • Можно ли в качестве обновления выложить абсолютно новое приложение в Appstore?

    eastywest
    @eastywest
    Backend developer
    Да, такое делали. Пришло просто как обновление.
    Ответ написан
    Комментировать
  • Как реализовать статические и динамические ячейки tableview Swift?

    D_mitry
    @D_mitry
    iOS / Android developer
    UITableView не позволяет использовать статический и динамический подход одновременно. Но можно использовать любое количество прототипов ячеек в динамической таблице.

    Можно предложить пару решений:
    1. Сделать один прототип для "динамических" ячеек и три отдельных прототипа под каждую из "статических".
      В методе протокола UITableViewDataSource
      func tableView(UITableView, cellForRowAt: IndexPath)
      просто возвращаем инстансы статических ячеек для последних трех позиций и инстансы динамической для остальных.
    2. Используем динамическую таблицу, а вместо статических добавляем footer view и три subview-ячейки

    Плюсик также можно реализовать в виде динамической ячейки или запихнуть в footer
    Ответ написан
    4 комментария