-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create initial project, making it easily customizable #1
Comments
At this point, we are not looking for a totally automated solution. We prefer to avoid creating a "special tool". We will develop it if needed later. We prefer something simple, even if it includes some manual operations. |
Later, I think you can use nuget tools |
Thanks for the advice about NuGet - I think we can use it if we'll use one of it's package or will have to redesign our solution as library/package. For now, I'm going fix on solution I note as 1.3. But I'll put here all possible solution. Possible ways to create new Magazine. 1.1 Manual way. Lets say, we have RedApp (app we want to use as a template) and want to create GreenApp.
Possible Risks: RedApp_TemporaryKey.pfx. If I'm right - this is compiled version of Package.appxmanifest, but still don't know how to regenerate it. 1.2 We can use the same approach as in previous case, but use tool that will make all replacements & re-generate GUID. Take ~1 day to create. 1.3 Manual way - use OBRATNIY approach - create application we need and only rewrite sources/resources. Lets say, we have RedApp and we want create BalckApp based on it.
Limitation: we should create app manually, but it seems ok for now. So, project structure will contain next mandatory elements:
Further description under construction... |
I am not very comfortable with this approach 1.3, for different reasons:
In iOS, we use targets, which works pretty well. See README.md in https://github.com/libreliodev/iOS (authorization required). There seems to be an equivalent feature in Visual Studio (http://stackoverflow.com/questions/5074333/definitions-of-xcode-project-templates-and-approaches-to-cocoa-development), which was not the case in Eclipse. Can't we use it? |
Sorry for the confusion - it seems I describe approach not very clear. We are not speaking about further maintenance a group of you projects (magazines). I tried to describe a way, how to create new magazine for the first time in additional to already existing. We have to create separated entry point for each magazine, but we should make it only Code rewriting - yes, you will have to rewrite some code, but not in our application sources, but in sources that will created by Visual Studio - when you create a new project in it - it is generate About code duplication - as I wrote above - we have at least 3 different way how to design our full solution for the easily maintenance and we can choose any method we like. It's really painful About assets - I'm not sure what exactly you mean. Do you able to explain it with simple example? If I'm right - in Android to create new magazine you have to rewrite only 2 folders: assets & res. p.s. It is possible will be good idea create a project that will contain not 1 magazine (only wind) but at least 2 different magazine to show customizing mechanism more clear and find out any further pitfalls. I also thought about this when looking through the Android solution. When you have 2 magazines it is better to understand how it is working. |
There are actually some specific assets for each magazine (for example the background of the magazines grid view), and some common assets (for example, some buttons).
It's certainly a good idea. Again, if it can be done in a similar way as targets on iOS, it's probably the best option. |
We need to reorganize the project:
cc @dd1804 |
Subject to further investigations, the best way to create multiple customized versions will probably be the one suggested in the 2nd answer at http://stackoverflow.com/questions/1116465/how-do-you-share-code-between-projects-solutions-in-visual-studio |
@dd1804 After some extra work and tests on the customization process, here is how we intend to make customized version (this will be automated via a bash script or similar):
|
I've worked on customization, let me know if this is ok. |
Steps to add a new magazine project: Step 1: Copy-paste the LibrerioMagazine directory in LibrelioApplication (the folder size is < 1MB) Step 2: Rename LibrelioMagazine.csproj in the new folder to the new magazine project Step 3: Add the new project to the LibrelioApplication solution Step 4: Add all the mandatory customization assets, that have the correct names and covers in the Covers folder. (If there is no WideLogo asset please use the empty image in the Wind project since if there is none the tile will not appear wide in the start screen). If the mandatory assets are not provided under the correct name the project will not compile. Step 5: Add covers and optional assets to project Step 6: Edit application_xml, set the active project of the solution and build Please note that the only thing you need to edit in Package.appxmanifest is the background color. |
I'll work on automating this process as well. |
@dd1804 The customization process you suggest looks fine. I noticed that the code is not duplicated, which is great. However, this is the case for certain common assets, including localization strings (apparently). I am afraid this could have undesirable effects; for example, if we want to change a translation in the current solution, I imagine we need to update 3 files , which is error prone. Can we avoid this? |
Also, is there a way to make LibrelioMagazine compilable? |
Yes, I wanted to say that you don't have to change any information about assets and capabilities. All the specific information about the app will need to be updated in this file. |
I removed the assets from LibrelioMagazine. I can put some empty image assets and it will compile. |
Don't bother about this, we'll do it ourselves. |
I've moved the localization files to the common assets folder and linked them to the projects. |
I've pushed more work on this and now it can safely be removed |
OK |
This project will be developed using the Wind magazine as an example, but many other similar magazine apps will be created after the completion of this project.
In order to create new apps for each existing and new magazine, a simple mechanism should be suggested and implemented. It is very important that no specific line of code needs to be written for each app. The customisation should be made only by changing specific text, xml and image files.
On iOS, we achieve this by creating different targets in Xcode. On Android, the customization is achieved as explained in the readMe file.
The text was updated successfully, but these errors were encountered: