I recently became quite interested in developing an adobe air application, and just had a few questions that maybe some more experienced air developers could answer.
Firstly, what is the average time-frame required for an air project. Mainly I'm planning a somewhat ambitious project of porting a specific forum framework over to an air app. How long would you estimate this would take me to do personally? I want something more than just the standard browser inside an app, more along the lines of built in controls/features for all the standard functionality.
Secondly, can apps be done completely with javascript/html/xml? I'm quite proficient with these 3 technologies, but have no real experience with flex/flash. This includes making the chrome as well. Do specific features require specific languages to be involved?
Finally, any good books/articles you would recommend? Preferably more advanced books/resources that lay the groundwork for making professional quality applications.
Any additional tips or insights on what you think may be useful are very much welcomed.
Start reading Adobe AIR for AJAX Developers, particularly the Getting Started section
Without knowing your skill level how would we know how long it will take you personally?
I have built and released apps in one week in my spare time, doesn't mean your project or your skillset for this project will be comparable.
Adobe Air development is fast and easy in general.
Don't reinvent the wheel making button and menu classes, leverage what's already out there.
Take a look at MadComponents: http://code.google.com/p/mad-components/ for UI
Other than that there are several robust tweening and graphics libraries out there.
There's also stage3d and frameworks to support 2d and 3d development for almost near native performance.
You can find a python script that will do it here:
http://code.google.com/p/flashcommand/
More info here:
http://www.mikechambers.com/blog/2008/05/02/flashcommand-for-os-x-updated-to-work-with-flash-cs3/
Basically, this just uses the JSFL API in Flash Pro to automate the compilation from the command line. However, it requires that Flash Pro be installed (and the script will launch it).
There is no a way to compile FLAs without using Flash Pro.
mike chambers
Related
We are attempting to write a LOB application for a medical device. We expect the application to grow upto > 50k lines of code with a complex state machine, business logic and UI rendering. The choices are
Electron or NW.js using NodeJS, HTML5, CSS3, Angular2, TypeScript
QT
WPF
We have lot of internal javascript libraries and developers skilled with javascript. So our preference is to reuse as much as possible and go with option 1. Is option 1, mature enough to support developing complex desktop applications.
Which would be your preference if you are starting today.
HTML5, CSS3, Angular2, TypeScript For Rich Native (desktop) applications
...
medical device
For what it's worth, this terrifies me. I hope any critical functionality is being handled elsewhere. If anything, because I do not trust anyone to audit all of the code you're about to dump into this and the code of the browser engine that's going to run it.
Is option 1, mature enough to support developing complex desktop applications.
Yes, of course. People do this every day.
We have lot of internal javascript libraries and developers skilled with javascript.
JavaScript doesn't tie you to HTML5. Folks have added QT bindings to Node.js before, as well as other libraries.
We expect the application to grow upto > 50k lines of code
How could you possibly know this right now? You haven't even decided what you're going to write it in.
This is more of a request for general guidance from experienced developers than a real question, so please bear with me.
As you may have guessed, I come from web development. Lately I have been interested in developing computer assisted production management software, which I hope, will go gradually by developing modules until such a time we have enough to start building a full Enterprise resource planning software. (Forgive me if the terms are incorrect, I'm struggling a bit with english).
Hence my conundrum. Being a web developer, I'd have hoped to reutilize my skills to that end, and with the surge of hybrid apps and desktop apps based on web languages (with the likes of Meteor and its library Electrify), I just can't help but wonder if these technologies are "adapted" to creating such -let's not say complex- intricate apps, hence the following questions.
Are these technologies mature enough for a development of this
scale and commitement over time. I'd hate to start on them just for
them to "fall out of fashion" and lose all traction.
Are they adapted for this kind of development? Compared to
native apps -say in C# or Java, are they truly suited for, say;
intensive database management?
In this endeavor I intend to recruit a small team (Who are
primarilly coming from native dev). Is it safe to assume that the
learning curve will not be too steep, that they'll not become
hopelessly lost at the early stages of learning?
Given that these apps will have to be highly modular to allow for
the hypothetic Entreprise resource planning software, are hybrid
apps a viable option?
And the final question might seem somewhat off-topic, but given
that these apps will be heavily reliant on forms and database
access, aren't web technologies just not the tool of the trade in
this case? Even when associated with libraries like React or
Angular, form creation and validation is a pain, whereas in IDEs
such as VS in C#, creating forms equals dragging them in a GUI fashion from the
database; if I remember correctly.
These are roughly my interrogations. What i'm hoping here for is for you to shed an experienced light on my situation if you can, and if you have any other remarks, please feel free to comment.
My plan was to create an interactive map thingy using .swf file that I'd make in Flash CS4 and perhaps incorporate it in my Visual C++ application, add some components and make an .exe file out of it. I obtained the platform from Adobe. My further plan was to get familiar with all the tools, learn ActionScript 3.0 and pick up some stuff from Visual C++ 2010 that I'll need along the way.
Later I was browsing the Web and read that Flash is getting pretty old and that everything is going towards HTML5, described as the latest HTML standard that uses CSS and some other stuff + JavaScript.
My questions are: Can I create my application like above described?
Can you make these kind of interactive applications (for offline usage) in HTML5?
If so, should I switch to it and what programming languages would I be obligated to learn? JavaScript? HTML syntax?
I am familiar only with the basics of C++ programming and I want to learn everything else I'll be using for my project along the way. I also apologize if my English is terrible, or if my question is badly put together.
Please help.
Have a look at the node-webkit project. In my opinion this is very promising: https://github.com/rogerwang/node-webkit
I have been working with node JS for about two weeks and I am liking it a lot. I came cross something called Cappuccino; it sounds like what I want to use to develop a web application. As a beginner, can someone assist with explaining what exactly Cappuccino is and how it fits into node?
Really my hold up with developing an application is that I come from a VB background and I am use to forms to design my desktop apps. I do not want to be limited with a WYSIWYG type of IDE, that is why I started with node.
What sort of web application? There are... many JS libraries/frameworks. It's a jungle.
My strong advice is to build several things, from very small to less small, using pure Javascript. Otherwise you will, I promise, remain forever cloudy on what the language is vs. the frameworks layered on top. JS is very mutable and frameworks have a tendency to create new semantics on top of the core language. The downside of learning by using these is you ever fully understand the complexities and subtleties of the language itself, nor do you ever really understand what those frameworks are giving you (in many cases, things you don't need or that artificially constrain you). Be wary of framework entanglement.
As you get used to writing simple scripts in a text editor (try Sublime Text if you want something much better than that), you'll begin to appreciate when and why you might want help from a framework. Move on to jQuery, as it's the most widely used library and is either a dependency or heavily informs the style of many other libraries out there.
I'm working on a blog post about the topic of frameworks, by no means comprehensive as there are hundreds of them it seems. Specifically, breaking down about 20-30 major players by their intended domain (e.g. DOM manipulation, Single Page Applications, data-binding, MVC, etc.) and strengths and weaknesses.
There are some great books and YouTube videos going into many aspects of modern JS. Anything by Douglas Crockford I recommend (especially book or video "Javascript: The Good Parts". He's pedantic but wise and generally on the money. Then for more inspirational stuff about recent/upcoming changes to the language, watch some stuff from the Google I/O events. Check out HTML5rocks.com for articles on some cutting edge features available in the browser. There are many many more resources, but these are some good ones.
Oh and be sure you are familiar with the dev tools in the browser. I personally recommend Chrome as best of breed. Learn the keyboard shortcut to open it on any page, inspect, and noodle. There are some fancy things such tools support like live editing/saving of source, profiling and debugging, DOM/CSS inspection, and on and on. There are other free and non-free IDEs but IMHO they are too much overhead for someone just learning (and many advanced JS developers use Sublime Text).
P.S.: jQuery, per its design goals, is still going strong but is aimed for obsolescence as browsers increasingly are converging on true standards (ES5, HTML5, CSS3). Even so, for many apps, its shorthand semantics are much better than even the newly supported standards for many things. And it's not going away any time soon, just becoming less important. Like IE. Ignore IE unless you need to build things for work.
As far as I can see, Cappuccino is a client-side framework of some kind, in the same kind of vein as Backbone.js or Angular.js, and is in no way comparable with Node.js. They run in completely different environments (Node on the server, Cappuccino in the browser).
A client-side framework like Cappuccino would be used to implement web apps that needed to do a lot of work on the client side. For instance, if you implemented a real-time web app with Node, you might use it to simplify inserting new content into the DOM.
I haven't used Cappuccino, and it doesn't seem to be all that popular. It seems to be squarely aimed at people with a background in Cocoa development on Mac OS X, so if that's not what you're after I would recommend you look elsewhere. Client-side MVC frameworks are very useful for some use cases, and the big four seem to be Angular.js, Ember.js, Backbone.js and Knockout.js, so I would check out one of them before considering Cappuccino. Knockout is very easy to learn, but lacks routing, which was a deal-breaker for me, so I switched to Backbone. Considering how much mindshare it seems to have, I would probably now go for AngularJS.
Cappuccino is a client side framework built on top of Objective-J which in turn is a complete language built on javascript. It's intended solely for building desktop class applications that happen to run in a browser.
Objective-J adds features to javascript (like classical inheritance) in the same way Objective-C adds them to C. You can use Objective-J with node but probably not most of Cappuccino. Cappuccino is the framework that lets you build rich user interfaces in a way that allows you to completely ignore that you're working with html.
I would not recommend Cappuccino as a first foray into web development unless you really only want to build a business application and you are already a proficient Mac OS X or iPhone developer. It will not help at all to teach you about the web.
Cappuccino is (imho) head and shoulders above everything else in its league, but it is intended (or most useful) for a very tiny niche.
If you're still interested in Cappuccino (or Objective-J) you should really check out the learn section of the Cappuccino project website
I'm starting a new job soon, in web-app development. While I'm experienced with programming, my background is primarily in game development and desktop/server applications. I have very little experience from modern web app development. Anyway...
Our primary development tool is going to be something called ESN Planet, which I've not heard about before. Their website is not very specific about its features, and it seems unlikely for one to get a trial invitation ("We have been getting lots of applications, so please try to be as detailed as possible when applying for an invite below.").
Is anyone using this tool, and can explain what kinds of skills are involved in development of apps using this tool? Should I learn Python, JavaScript, CSS, or something else? All of the above? What is the workflow like for a developer? Will I need modern HTML skills?
I'd like to prepare for this job, but not sure what to expect and prepare for. My contact with the company is not a developer, so I figured I would ask here.
I saw a talk by the boss of the company that developed this stuff, at the Europython conference this year. It was ostensibly about the custom IDE that they created to develop in it, but also touched on the Planet system itself. It seems like a pretty run-of-the-mill MVC framework, as far as I can tell.
As far as what to learn, you will definitely need Python. Normally in web development you also need HTML, CSS and Javascript as well - but some frameworks abstract a lot of that away from you, to a greater or lesser extent. Impossible without knowing more about the framework to tell whether this is one that does. And it also depends on the way the company you're working for is set up - some have separate front-end teams that deal with that side of things, leaving the Python developers to just manage the server-side stuff.
For what it's worth, ESN Planet has been used to build Battlelog (http://battlelog.battlefield.com), the web platform for stats tracking and web launching of Battlefield 3.