Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I've created an Android application, which is generally aimed on Tablets. Its main business-logic is in pure java, it contains around 10-15 Activities, SQLite database, it performs HTTP transactions, exports information to different formats etc.
My customer now (out of a sudden) wants to have exactly the same application running on Windows 7 or 8.
What is the simpliest and the most straightforward way to create such an application (I do not consider using emulators)?
I've never created GUI for Java-applications before.
Gradle subprojects
Since you are probably using gradle already, you can decouple your business model from the platform, moving them to another project, from which your android and desktop projects will depend:
--Main Project
|-- core
|-- android
|-- desktop
https://docs.gradle.org/current/userguide/multi_project_builds.html
Platform Agnostic Frameworks
If your app is using frameworks like retrofit, which work on both and Android and common java projects, you can move its usages to the core project.
GUI for desktop project
This question covers very well different GUI frameworks from where you can choose.
Keeping your MVC
Decoupling your project in such a way is not an easy task. You'll need to carefully think on how your core project will interact with the others (i.e some internal API). Basically, you will keep working on a MVC-sort-of-architecture, but now your android project will be a view, and your desktop will be another.
Similar question: java desktop and android application at the same time - shared packages
(Little bit off-topic but it might help you)
While the multi-project approach might seem like a nice reuse of existing code, it might get harder depending on how your current project is structured.
Another approach would be to use something like Electron with Polymer and/or AngularJS.
If you are familiar with web technologies, it can be a lot easier to create your desktop app like this. And you have a plus: a browser app is just one step ahead.
Also, Polymer keeps material design on your desktop app, making your designs more consistent between platforms, which might be difficult to achieve using native java frameworks for desktop.
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I have looked in different places, but I am not REALLY sure as to what to use. I'll explain:
I'm self-teaching myself, with various books and tutorials. I use Eclipse with the ADT, but it seems now that Google is really pushing people to use AStudio (especially after its recent stable release). I have heard that AStudio has the following benefits:
Gradle Build
Improved Visual Editor
Improved code completion
Amongst many other benefits...
For starters, what are the benefits of AStudio put simply? (For example, what actually IS Gradle building?!)
However, for a novice like myself, would it be beneficial for me to switch to AStudio? (considering that I'm also trying to teach myself some CORE Java)
Sorry if this seems like a repetition, but I was just hoping to recieve information in terminology that I can understand...
Thanks!
Android Studio is the new IDE for developing Android apps. Google decided to change it, and so we must follow. I found an article that compares Eclipse and Studio for you: http://news.dice.com/2014/03/19/googles-android-studio-vs-eclipse-fits-needs/
You want to know what Gradle is?
Gradle can automate the building, testing, publishing, deployment and more of software packages or other types of projects such as generated static websites, generated documentation or anything else.For example, it is possible to simply add a Sonar connection, to check your code.
Also Gradle uses dependency management, which will make it a lot easier to add libraries to your projects, and sharing them with other developers.
Where Eclipse required to have a local copy of a library downloaded on your pc, gradle automates this. Add the library to your graddle file, and it will download the package for you.
Gradle will do this again when your project is transfered to another workstation. So no more cursing about libraries that were not sent to you.
Learning Java can still be done in Eclipse, or transfer to IntelliJ IDEA. AS is powered by IntelliJ, and has the same interface. IntelliJ and AS both get updates frequently, a lot more then what I saw with Eclipse.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
Is there some native android framework that uses only java? Example: create buttons, text fields, containers, ext.
And my biggest problem is with the design. I would like to know if is there any framework that facilitates apply styles to buttons, fields, layers, etc? Like twitter bootstrap, but only in java. I do not want html and css frameworks .. I used the phonegap and is very slow compared to native app.
I should use Framework or create my own code?
I highly recommend using the native Android framework using Java to write your code and XML to write your layouts.
The first reason you will want to do this is speed (like you said yourself, native apps typically run much smoother than apps created using PhoneGap and other third-party frameworks).
The second reason is that there is a ton of documentation and tips online teaching you how to write Android apps... there won't be nearly as much documentation available to you if you decide to auto-generate your application using some sort of third-party framework.
To help generate layouts, there is a GUI-builder that you can use in both Android Studio and Eclipse.
The Android SDK available from developer.android.com is the preferred framework. It is based on Java. Apps are written in Java, using the Android API. You must use the Android widgets, not the Java Swing widgets. You can apply styles to Android widgets.
When you go into a new development environment/platform, regardless of what it is, you can only take your existing knowledge so far. Designing web apps and web GUIs is not exactly the same as designing Android apps and GUIs. Designing an Android app is not even the same as designing an iOS app, although many developers make that mistake.
You may be able to craft a simple, functional app using a development tool such as twitter bootstrap (in the past, these were known as "fourth-generation languages" to differentiate them from regular programming languages such as PL/1, Pascal, etc.). At some point, however, you won't be able to get exactly what you're looking for, and then you'll have to learn how to use the SDK as delivered.
In short, none of the shortcuts get you there exactly.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
Are there really any tools out there or sdk's that truly support cross-platform java mobile development, and are worth their weight in code?
I would like to rewrite our mobile application with an sdk that would allow usage on IOS (Ipad and Iphone), Android, and Windows Mobile 5 and 6.
If I am asking for the moon, please let me know.
I am traditionally a c# developer, and just moving into learning Java.
I see many different posts about cross-platform development but I wonder where we are as an industry today on this.
You could take a look to the mgwt or the codenameone framework.
For a server-based app built in pure Java but deployed via pure HTML+CSS+JavaScript: Vaadin. But that means your app requires an Internet connection to run.
Tip: Some folks build a bare-bones minimal native app that simply points a web-browser view directly to your site's URL. This allows you to sell/give your "app" in the App Store while actually building a web app that runs cross-platform.
There is no Java present on iOS. So there is no Java-based development kit to build local native apps across iOS, Android, and Windows Mobile.
Google did announce the J2ObjC project to translate Java code to Objective-C for the iOS. But that does not solve all your problems.
Eclipse Tabris is another option but it isn't free (It isn't costly either).
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 4 years ago.
Improve this question
Might be my question is abstract or out of context, but i am asking here since i have little idea how this happens.
I am wondering how big application/ platform break down there application in to multiple module and how they able to manage modules dependencies.
For example in some E-commerce application they tend to break down it in various modules like pricing,promotions,shipping.import/export and many more.
when we develop those application we hardly think about the underlying modules and how they have been designed to provides functionalists.
Most of those module are not web-applications but are standalone module and not deployed in the web-app as jar files.
can any one help me to understand how they break up things or is there any standard way to do this.any help/resources to get insight will really be helpful
E-commerce application [...] tend to break down [the application] in various modules
like pricing,promotions,shipping.import/export and many more.
[...]
Can any one help me to understand how they break up things or is there
any standard way to do this.
There are various ways from the technology point of view to modularize applications. Large systems are split into modules that must communicate with each others, and there are various technologies to do so: EJB, web service, libraries, database, file system, message queues, etc. It's way to vague to be answered.
In practice applications ten to be modularized according to the social structure of the company. This is Conway's law. Since pricing, promotions, shipping are usually different teams within the organizations, chances are that each team will have an engineering group, and the system will be modularized according to the organizational teams.
Try looking at the various maven archetypes available out there.
for example: http://appfuse.org/display/APF/Home
You can package many EJB jar archives within an EAR archive.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
i want to develop a big web application in Google App engine, but I don't know which framework to use in order to obtain the MVC Model. I prefer to use Spring MVC, but I read that several problems with GAE. Another option would be to use django with python but I have never used that. What framework or option do you recommend? Are there other frameworks?
Greetings
You should check out web2py -- it's a full-stack Python MVC framework that's very easy to set up, learn, and use. It was designed to run on Google App Engine out of the box, and there's a whole section in the online book dedicated to GAE (there are also other references throughout the book discussing a few special considerations when developing for GAE). There's even a "Deploy on Google App Engine" button in the web2py browser-based IDE (see the IDE demo home page and GAE deployment interface).
Your web2py GAE apps will also be portable -- you can deploy them on other platforms (e.g., a Linux VPS) without changing your code (though you may want to make some adjustments once you're off GAE and no longer subject to its limitations).
If you have any questions, you'll get lots of help from the mailing list.
I've used Stripes on Google App Engine with success and pleasure. It's a simple yet really powerful MVC stack, very easy to learn and use, and with great documentation. I've been able to integrate it with Guide (for dependency injection) and Sitemesh (for page templating). If you're interested, the code for the application I developed is available at http://code.google.com/p/memwords/.
Django is a best framework for projects without incredible high load, but GAE supported by a very old version.
Try to use Pycharm for editing GAE-applications. This is already usable IDE with active development
Take a look at Tornado, it's a scalable, non-blocking web framework in python and it's simpler and easier to develop in than Django.