Быстрый способ создать продукт

3 года назад мне пришлось изучить Node.js и несколько серверных технологий, чтобы создать свой собственный продукт. Все работало медленно. Учиться строить больно. Я мог заставить это работать, но не мог глубоко понять это. Я был потерян, зная, является ли это правильным или лучшим способом его реализации.

Было бы неплохо, если бы мы могли построить что-то без сервера? Другими словами, сервер меньше. Звучит здорово, правда? Но вопрос в том, как это реализовать?

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

1. Выберите бессерверный сервис

Итак, обо всем по порядку. Идите и ищите сервис без сервера. Вот несколько хороших сервисов, которые вы определенно можете использовать для своего проекта: Firebase, Parse, Back4App и backendless.

Просто имейте в виду, у каждого из них есть свои преимущества и недостатки. Так что выбирайте с умом.

Чтобы сэкономить время, я собираюсь использовать Firebase, так как я хорошо в этом разбираюсь.

2. Улучшите свой бессерверный

Firebase и Parse имеют мощные функции, использующие облачные функции. В свой проект(ы) вы можете добавлять инструменты, действия и триггеры.

Вот некоторые примеры:

  1. используя стороннюю платформу Stripe, где вы можете обрабатывать платежи.

  2. Изменить статус базы данных, когда она достигает крайнего срока

  3. Обновляйте данные пользователя всякий раз, когда он что-то добавляет со своего мобильного устройства.

Проверьте эту ссылку. Вы можете прочитать больше из Документация Firebase или же Образцы облачных функций.

3. Создайте гибкий и легко изменяемый мобильный пользовательский интерфейс

Всегда приятно вносить изменения очень легко. Я уверен, что у вас несколько раз менялся пользовательский интерфейс. Чтобы сэкономить время, не сосредотачивайтесь на создании причудливого пользовательского интерфейса. Сначала создайте «скелет», затем нанесите «кожу». Попробуйте эти статьи:

4. Напишите централизованный код

Будет момент, когда вы будете содержать пользовательские цвета и шрифты для своего пользовательского интерфейса, поэтому спросите себя, хотите ли вы изменить их для каждого файла? (Может быть, у вас есть 200 файлов, и вы должны изменить их более чем в 1000 местах. Ого!)

Ну, ты должен знать, что лично мне это не нравится. Я почти уверен, что вы тоже. Итак, давайте просто возьмем это только из одного места
Попытайся!

extension UIFont {
    enum knWeight: String {
        case black = "Muli-Black"
        case bold = "Muli-Bold"
        case medium = "Muli-SemiBold"
        case regular = "Muli-Regular"
    }

    static func main(_ weight: knWeight = .regular, size: CGFloat = 15) -> UIFont {
        return font(weight.rawValue, size: size)
    }
    
    static func font(_ name: String, size: CGFloat) -> UIFont {
        guard let font = UIFont(name: name, size: size) else { return UIFont.boldSystemFont(ofSize: size) }
        return font
    }
}

Теперь я больше не хочу использовать семейство Muli, просто измените его здесь. Вот и все.

Или этот

extension UIColor {
    static let main = UIColor.black
    static let secondary = UIColor.darkGray
}

Не давайте конкретное имя, такое как lightRed, alphaBlue, grayCyan… Спросите своего дизайнера, если он у вас есть, который может дать вам конкретные и общие имена и что он может следовать основным принципам и проектам. Когда дело доходит до замены, теперь вы знаете, где это изменить, и это не займет много времени.

5. Пишите гибкий код

В какой-то момент вы измените несколько вещей, таких как: сторонние библиотеки, локальная база данных или бессерверная служба в будущем. Это может произойти в любое время. Я уверен, что вы не хотите повторяться. т.е. (Войти, зарегистрироваться, забыл пароль, панель управления, обновление данных пользователя).

** Использование протоколов спасает жизнь. Это поможет вам не писать код жесткой связи **


protocol Service {
    func login(email: String, password: String, completion: (AnyObject) -> Void)
}

class FirebaseService: Service {
    func login(email: String, password: String, completion: (AnyObject) -> Void) {
        print("Do login with Firebase")
    }
}

class NewService: Service {
    func login(email: String, password: String, completion: (AnyObject) -> Void) {
        print("Do login with New service")
    }
}


var service: Service { return FirebaseService() } // put it somewhere globally or locally, depend on you. 
// You will change to NewService() when you need to switch. That's all. 
class LoginController {
    func login() {
        service.login(email: "nguyentruongky33@gmail.com", password: "AwesomeiOS", completion: { result in
            print("Handle response here")
        })
    }
}

Так вот! Некоторые из моих советов по iOS-разработке. Есть еще темы для обсуждения, такие как операции и оформление документов. Если вам интересно, я сделаю еще одну статью об этом в ближайшее время. Опять же, я уверен, что они являются идеальными или лучшими практиками, но это может быть идеей.

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

Делитесь, чтобы расти. Наслаждайтесь кодированием.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *