Code Monkey home page Code Monkey logo

Comments (3)

marchbold avatar marchbold commented on May 22, 2024

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.

j3k0 avatar j3k0 commented on May 22, 2024

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.
  1. 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.

marchbold avatar marchbold commented on May 22, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.