2016-11-01 9 views
0

Прошло некоторое время с тех пор, как я в последний раз разрабатывался для iOS. Я думаю, это было до того, как Свифт вышел. Однако это не имеет значения. Мне любопытно, что я сделаю для своего работодателя.Как подпроект или настроить несколько эквивалентов приложений в iOS 10/Xcode 8/Swift 3

У нас есть продукт, который использует GPS-трекер, и, помимо веб-приложения, мы также хотим предложить мобильные приложения. Я уже создал версию нашего приложения для Android. Для этого я использовал один базовый проект, в котором я реализовал все функциональные возможности (например, функция 1 и функция 2).

Затем я создал два других проекта, которые имеют базовый проект как зависимость. Эти два проекта - мои фактические приложения. Класс App перезаписывает базовый класс приложения, который имеет два абстрактных метода «hasFunction1» и «hasFunction2», которые возвращают логическое значение, которое я использую в базовом приложении, чтобы обеспечить определенную функциональность.

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

Теперь я хочу сделать то же самое для iOS, но здесь все по-другому. У вас есть раскадровки, которые напрямую переходят к определенному классу, и я понятия не имею, должен ли я создавать несколько проектов (например, в приложении для Android) или лучше использовать целевые объекты.

Что вы думаете об этом? Пожалуйста, имейте в виду, что мои приложения почти одинаковы. Единственными отличиями являются также имена, которые иногда добавляют в App 1 часть функциональности, которую App 2 не имеет (но может иметь в будущем)

Каков наилучший подход для такого проекта? Я понятие не имею, как не талевый его прошивку

UPDATE

Я только что получил идею, и я хотел бы услышать ваше мнение по этому вопросу:

  • Есть протокол, простой, который, например, имеет только один метод, возвращающий логическое значение
  • В базовом классе проверьте, реализует ли сам протокол, и вызовет ли его метод, если это так. Используйте возвращаемое значение этого определения, является ли функция доступна
  • Создание нескольких целей, по одному для каждой из моих приложений
  • В каждой цели, создать расширение для своего базового класса, который реализует Protocoll

После быстрый тест на моей детской площадке, это, кажется, работает, как я ожидал, но я до сих пор не уверен, если я должен создать основу, несколько проектов и/или просто разные цели:/

enter image description here

+0

Вы можете включить свой общий код в рамки. https://www.raywenderlich.com/126365/ios-frameworks-tutorial –

+0

Как насчет пользовательского интерфейса? Это моя главная забота. Пользовательский интерфейс в основном никогда не изменяется, кроме того, что некоторые части могут или не могут быть включены или скрыты в зависимости от реального приложения. Я не хочу каждый раз воссоздавать раскадровку. Я в основном хочу, чтобы весь мой код находился внутри базы, и приложения должны только сообщать, делают ли они что-то или что, и, возможно, предоставляют некоторые дополнительные функции – xxtesaxx

ответ

0

я понял, тха У меня в основном есть два варианта для достижения того, что я хочу. Первый - тот, который я уже упомянул в обновлении моего исходного сообщения:

Я могу создать протокол и в ядре, я делаю проверку, если self является экземпляром протоколла, и если да, вызовите метод по протоколу. В моих подпроектах я просто создаю расширение для своего класса, который теперь реализует мой протокол.

Второй способ, который я понял, - это использовать макросы препроцессора и/или переменные окружения.

Я надеюсь, что этот ответ поможет кому-то еще с такими же проблемами, как и я.

 Смежные вопросы

  • Нет связанных вопросов^_^