Comments (3)
These values are used through the additions merge process as well so it is important that they match. I'm actually more inclined to go the other way and provide more options in the project config than remove them.
Can you explain why you wouldn't want to have an accurate representation in the project file?
from apm.
It's a design choice:
1 project.apm
aims to become the only source of truth, then it needs to be a full layer above the application descriptor.
- in this scenario, the application descriptor is like an internal file format, never touched by the user.
- all documentation and answered questions that exists online, explaining what to change in the application descriptor to fix certain issues, it's kinda invalidated.
- more work.
apm
is a tool to manage the manifest and plist additions.
- in this scenario, the application descriptor is the source of truth,
project.apm
only adds dependencies and configuration.
I was under the impression you were aiming for case 2 (not a full replacement for the app descriptor).
Additional thoughts. Have you considered making the project configuration an XML file? All AIR-related config files tend to be XML, our internal tooling is equipped for parsing XML, not JSON (which I like more, as a human, but you know, legacy...).
What if the config file was an extension of the application descriptor? Something like this:
<application>
<id>my.id</id>
<name>
<text xml:lang="en">My App</text>
</name>
<versionNumber>1.15.0</versionNumber>
<filename>App</filename>
<description>
<text xml:lang="en">App</text>
</description>
<copyright>Copyright 2016-2021, Fovea</copyright>
<supportedLanguages>en fr es de ja ko nl pt pl</supportedLanguages>
<initialWindow>
<aspectRatio>landscape</aspectRatio>
<renderMode>direct</renderMode>
<autoOrients>true</autoOrients>
<fullScreen>true</fullScreen>
<visible>true</visible>
<softKeyboardBehavior>none</softKeyboardBehavior>
</initialWindow>
<!--- NEW STUFF HERE --->
<dependencies>
<dependency>
<id>starling-source</id>
<version>2.7.0</version>
</dependency>
</dependencies>
<configurations>
<configuration key="getTaskAllow">false</configuration>
</configurations>
</application>
That would also make scenario 1
almost immediate, right? Also that gives an almost immediate migration process to apm (apm would understand existing projects). Also existing knowledge still apply to apm.
Just an idea...
from apm.
What I am aiming for is sort of like what you outline in 1, however not just replacing the app descriptor with the project.apm
file, but with the apm
tool itself. Both files would then be transparent to a developer except in advanced cases.
apm
will be able to control all aspects of project.apm
so this file format should be irrelevant, except in development and again advanced usage. This is even why we chose a different extension so as to clearly distinguish it.
I actually see potential to take the tool even further, with generating icons (including Assets.car / launch screens - which would be inserted into the app descriptor), build configurations for IDEs, and potentially even assembling build scripts. If this becomes the entry point for all libs, the majority of the information for configuring a build is contained here already.
The current approach of using the existing application descriptor as a template, is pretty much what you are suggesting. It allows immediate migration for an existing project, (as long as packages are available for all the ANEs in use) to apm
with just supply of the application id and version (which is requested in the init process). It also allows all existing knowledge to apply. Also I think any existing documentation on what to change in the app descriptor would have a 1-to-1 corresponding fix in apm
.
Maybe we could provide an option to apm init
to process an existing app descriptor as an alternative to entering them manually?
from apm.
Related Issues (20)
- Improvement: List outdated packages only on apm outdated HOT 1
- No package found matching : com.distriqt.admob.IronSource@latest ✗ HOT 6
- Can't install any package E::ProcessQueue::Error #3003 HOT 10
- Can't install com.distriqt.ironsource.AdMob Conflict HOT 7
- Different build configurations for similar apps HOT 4
- APM project as template generator HOT 5
- APM giving me errors HOT 5
- APM generate app-descriptor throw Error #1088 HOT 1
- No package found matching HOT 2
- CONFLICT :: fatal error : found [1] conflicting packages HOT 15
- Simple update leaving us with broken project HOT 4
- apm not working with airsdk ver50.1.1 HOT 3
- APM Conflict with Core ANE HOT 17
- Generate Device Specific app-descriptor HOT 6
- No package found matching HOT 4
- minsdkversion too high for old phones? HOT 4
- APM conflicts with Core Ane HOT 3
- apm update - check have access to private packages before uninstalling HOT 35
- apm android project does not ignore ios_simulator assets folder HOT 2
- unable to install anes HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from apm.