Создавайте множество приложений с большей частью одного и того же кода

Я искал в Интернете ответ, но не могу найти то, что ищу. Я ищу основную базу кода, которую я могу использовать во многих приложениях. Единственными отличиями являются значок приложения, фоновое изображение, имя приложения и URL-адрес сервера для получения всей информации. В настоящее время у меня есть основная копия приложения как на iOS, так и на Android, и я просто копирую ее (поэтому создаю новый проект с тем же кодом), а затем меняю маленькие кусочки, которые нужно изменить. Таким образом, если я обновлю главное приложение новой функцией, мне придется добавить новый фрагмент кода в каждый проект, а затем обновить их. Есть ли способ, которым я могу просто обновить основной код, и он обновит все мои проекты, кроме URL-адреса, имени и изображений.

Изменить. Я просмотрел этот вопрос (android-flavors-with-other-base-themes но я не берусь за создание 10 или около того приложений из одной кодовой базы. В настоящее время у нас более 170 приложений и их количество растет. Допустимо ли иметь столько разновидностей Android или целей xcode в одном проекте и будет ли легко добавить новые.

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

Спасибо


person Luke Chase    schedule 17.11.2016    source источник
comment
Возможный дубликат разновидностей Android с разными базовыми темами   -  person R. Zagórski    schedule 17.11.2016
comment
Довольно общая проблема. используйте Xcode Targets для iOS и варианты gradle для Android   -  person Nimble    schedule 17.11.2016
comment
Упомянутый выше дубликат касается только части вопроса пользователя.   -  person picciano    schedule 17.11.2016
comment
Создайте репозиторий и пусть все ваши проекты будут ветками этого репозитория. И при фиксации и извлечении игнорируйте папку resource   -  person Aidin    schedule 17.11.2016
comment
Вам нужен SDK? Похоже, это можно сделать с помощью библиотеки. SDK обычно предназначен для разработки другими, похоже, что вы хотите, чтобы все оставалось прежним, за исключением нескольких простых изменений, которые мне кажутся библиотечными.   -  person zgc7009    schedule 17.11.2016
comment
Да, извините, вы правы, я имел в виду библиотеку, а не SDK.   -  person Luke Chase    schedule 17.11.2016
comment
В качестве предупреждения я не думаю, что существует ограничение на количество вариантов, которые Gradle позволит вам иметь, и вы можете полностью управлять этим в одном проекте, если хотите. Черт возьми, вы даже можете создать библиотеку и управлять ею в рамках одной разновидности, чтобы уменьшить ресурсы, а затем, после компиляции библиотеки, создать другой проект, который включает библиотеку и активы в определенные разновидности gradle.   -  person zgc7009    schedule 17.11.2016


Ответы (6)


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

person picciano    schedule 17.11.2016
comment
Привет пикчано. Я посмотрел на это, но в настоящее время у меня более 170 приложений, и их количество растет. Действительно ли это лучший вариант иметь столько разных целей в одном проекте xcode? Я думаю, что моим лучшим вариантом было бы создать какую-то библиотеку, которую можно было бы импортировать в каждый проект. - person Luke Chase; 17.11.2016

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

person elrain    schedule 17.11.2016
comment
Здравствуйте, elrain, я изучил это и думаю, что это будет лучший ответ для моей ситуации. Вы нашли какие-либо руководства/учебники о том, как это сделать? - person Luke Chase; 17.11.2016
comment
Для Android просмотрите это руководство это руководство. - person elrain; 17.11.2016

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

person Abd Al-rhman Taher Badary    schedule 17.11.2016

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

person Saeed Zhiany    schedule 17.11.2016

Мне пришлось это сделать, и я создал библиотеку, которая использовалась во всех проектах, а затем просто изменил нужные мне фрагменты кода.

person Community    schedule 12.04.2017

Я создал библиотеку, которую потом использовал во всех своих проектах. Это работает хорошо и рекомендую сделать что-то подобное.

person Community    schedule 24.04.2017