Прошло некоторое время с тех пор, как я в последний раз разрабатывался для iOS. Я думаю, это было до того, как Свифт вышел. Однако это не имеет значения. Мне любопытно, что я сделаю для своего работодателя.Как подпроект или настроить несколько эквивалентов приложений в iOS 10/Xcode 8/Swift 3
У нас есть продукт, который использует GPS-трекер, и, помимо веб-приложения, мы также хотим предложить мобильные приложения. Я уже создал версию нашего приложения для Android. Для этого я использовал один базовый проект, в котором я реализовал все функциональные возможности (например, функция 1 и функция 2).
Затем я создал два других проекта, которые имеют базовый проект как зависимость. Эти два проекта - мои фактические приложения. Класс App перезаписывает базовый класс приложения, который имеет два абстрактных метода «hasFunction1» и «hasFunction2», которые возвращают логическое значение, которое я использую в базовом приложении, чтобы обеспечить определенную функциональность.
Я также могу легко позволить классу приложений каждого приложения возвращать классы для разных случаев, потому что эти классы (например, подклассы видов деятельности) имеют базовую функциональность, реализованную в базовом проекте, тогда как проект приложения только расширяет или переопределяет определенный фрагмент функциональности.
Теперь я хочу сделать то же самое для iOS, но здесь все по-другому. У вас есть раскадровки, которые напрямую переходят к определенному классу, и я понятия не имею, должен ли я создавать несколько проектов (например, в приложении для Android) или лучше использовать целевые объекты.
Что вы думаете об этом? Пожалуйста, имейте в виду, что мои приложения почти одинаковы. Единственными отличиями являются также имена, которые иногда добавляют в App 1 часть функциональности, которую App 2 не имеет (но может иметь в будущем)
Каков наилучший подход для такого проекта? Я понятие не имею, как не талевый его прошивку
UPDATE
Я только что получил идею, и я хотел бы услышать ваше мнение по этому вопросу:
- Есть протокол, простой, который, например, имеет только один метод, возвращающий логическое значение
- В базовом классе проверьте, реализует ли сам протокол, и вызовет ли его метод, если это так. Используйте возвращаемое значение этого определения, является ли функция доступна
- Создание нескольких целей, по одному для каждой из моих приложений
- В каждой цели, создать расширение для своего базового класса, который реализует Protocoll
После быстрый тест на моей детской площадке, это, кажется, работает, как я ожидал, но я до сих пор не уверен, если я должен создать основу, несколько проектов и/или просто разные цели:/
Вы можете включить свой общий код в рамки. https://www.raywenderlich.com/126365/ios-frameworks-tutorial –
Как насчет пользовательского интерфейса? Это моя главная забота. Пользовательский интерфейс в основном никогда не изменяется, кроме того, что некоторые части могут или не могут быть включены или скрыты в зависимости от реального приложения. Я не хочу каждый раз воссоздавать раскадровку. Я в основном хочу, чтобы весь мой код находился внутри базы, и приложения должны только сообщать, делают ли они что-то или что, и, возможно, предоставляют некоторые дополнительные функции – xxtesaxx