Java Android Application Direction Requested...

Started by
1 comment, last by hplus0603 10 years, 3 months ago

Hello everyone. Thank you for taking the time and interest in reading this thread. I've broken down the opening topic of this thread for easier reading. Before I get started, let me give you a very brief background about myself.

About me:

I'm a Java Application Developer. I focus primarily on the business logic of a multitier (client-server) architecture:

http://en.wikipedia.org/wiki/Multitier_architecture

http://en.wikipedia.org/wiki/Business_logic

About what I'm doing which is related to this thread:

I'm gearing up to make a cross platform Instant Messenger Client & Server. This is purely for educational reasons. I am confident I have what I need to commit myself for this project on a Windows/Linux/Mac environment.

Where I could use your help:

I would like (preferably from someone who's already done it) to give me an idea of what I will need to successfully create a client to server application on an Android mobile device. There are some requirements, so in finer clarity:

  1. The APIs must be scalable with JOGL for later projects.
  2. The APIs must be easily integrated with Eclipse IDE (no Netbeans IDE please).
  3. I want to avoid Game Engines like jMonkey as these remove the education value of what I'm aiming for.
  4. I would like something that's standard for businesses, like Java ME for starters.
  5. I need to know the business model just like mine listed above for multitier architecture.

Conclusion:

If anyone could answer these questions, you would be doing me a great service, and saving me hours if not days of doing the research myself. If I'm going to recreate the wheal, I really want to confine it in the development, and not the designing aspect of SDLC. Many thanks in advance.

Oh, and please... while I have respect for other languages, please do not make comments about using a different language. Thank you!smile.png

NOTE: I am not in any rush for an answer. With that said, if someone is trying to research the design aspect of this request, and than implement it to verify and for their own learning before answering this inquiry, than kudos to you. biggrin.png

Advertisement

At first I wasn't sure if this should be moved to Mobile forum, or to Networking. The questions are a little bit of both.

Ultimately it look like questions about a communications, so I'm moving it to the Networking forum.

I'm gearing up to make a cross platform Instant Messenger Client & Server.

I am comfortable writing a Windows/Linux/Mac environment.

0. I would like an idea of what I will need to successfully create a client to server application on an Android mobile device.

  1. The APIs must be scalable with JOGL for later projects.
  2. The APIs must be easily integrated with Eclipse IDE (no Netbeans IDE please).
  3. I want to avoid Game Engines like jMonkey as these remove the education value of what I'm aiming for.
  4. I would like something that's standard for businesses, like Java ME for starters.
  5. I need to know the business model just like mine listed above for multitier architecture.

0. You will need a communications protocol. You will need a server program that is publicly visible on the Internet and implements the protocol, either to implement a store-and-forward algorithm or to act as an introducer for direct client-to-client connections. You will also need one or more programs that implement the client side of that protocol.

1. Instant messaging is all about networking communications and the messaging protocol. It is completely independent of rendering. You can draw to the screen with JOGL or a plain Java canvas or any other interface you want. Rendering and communication are completely independent.

2. Android development in Java is most easily done with Eclipse. The android-specific details are available here. You will probably be able to use exactly the same java.net.* functions you would use in a desktop app. There are some additional android.net classes available if you want to take advantage of the functionality, but you don't need it for a fully functional network app.

3. Again, instant messaging is completely independent of engines or platforms. No game engine is necessary. You write a network communications protocol and you can connect any Internet-enabled device that follows the protocol. Display it using whatever display method you feel is best.

4. The language you use is not really important. What matters is that the final executable runs on the target devices. Note that Android doesn't run J2ME. The Android environment (called "Dalvik") has more security options that allows for writing to files, access hardware, and manipulate network connections in ways that are forbidden in J2ME. If you have a dumb-phone that uses J2ME and want to reuse the application, there are J2ME emulators and converters out there.

5. A business model doesn't have anything to do with an instant message protocol. Making a business plan is a very different thing, I suggest reading whatever books are available to you on the subject. Developing software is just a tiny subset of running a software business.

Many people who first learn network communications find it easier to begin with existing simple protocols. There are many existing instant messenger protocols out there. The Jabber/XMPP protocol is probably the most common. It uses an XML-based stream protocol and is a very straightforward to implement a minimal client. Since there are many servers out there already you won't need to write one. There are also many Java implementations if you want a reference as part of your learning experiment.

It's very unclear to me what you're asking for.

You're saying you want to develop an instant messenger service. These are typically push-based, with significant latency, and TCP/reliable-delivery as a high priority.

Then you're talking about an API. What API would that be? The API that you're trying to develop for your instant messenger service, or some magic third party API that already implements instant messaging?

Then you're talking about IDEs. I don't quite understand what IDEs have to do with APIs or services at all. If it's a Java API, you're going to get JARs (or perhaps .java files). Those can be added to any IDE, or indeed to any project using command-line based build tools, too.

Then you're saying that your API should be easy to integrate with JOGL. JOGL is a graphics API. It has nothing to do with a networking/messaging API.

Then you're talking about Java ME, which is a version that might still be applicable to applications built to run out of SIM cards, but has little to do with any real environment these days. Because you're talking about Android, you should know that Android isn't really an Oracle-approved "profile" at all, although it's somewhat close to J2SE. (In fact, there was a lawsuit recently about just this kind of thing.)

Then you're talking about business models, without trying to tie the business model to the technology in any way. Other than "provide a service that people like enough to pay for, and then charge them money for this service," it's not clear what you're trying to ask for.

So, I think you need to do another level of definition of what it is you want to actually achieve, and explain that in somewhat clearer and more detailed terms, before we can give you any kind of useful answers that have a chance of actually helping with whatever it is you actually want help with.


If I were to answer anything based on your message, I would suggest looking into the "jabber" protocol. It has open source servers and client libraries to implement instant messaging and presence.
enum Bool { True, False, FileNotFound };

This topic is closed to new replies.

Advertisement