How do we create android application custom documentation for application flow? - android

Recently my team mates has started to work on an android application, which has more than 200 screens in an application.
In this case, I face one issue that when I need to explain the code or flow of screen to the other developer it would too much difficult. So I have to google to find the solution.
I am not much aware of the solution for android. In javascript, I have used jsDoc or swagger for API documentation, which offered a great way.
But in android, I unable to find the solution for coding documentation and screen flow.
Do I need any design tool to explain screen flow and documentation of an android application?
Let me know if you need more details or explanation I shall update the question accordingly or improve my question.

There is no way to create an automated screen / state transition diagram. If you use the Navigation Architecture component, you can use the navigation editor which is similar to Apple's storyboards. This is helpful but often times doesn't cover everything.
In our projects we rely on tools like overflow.io to create and maintain the screen flow diagrams. We use either design files from sketch or Adobe XD or screenshots from our app. This is a very manual process.

Firstly Go to File -> Project Structure. Under the Platform Settings heading, add or select an Android Platform. Go to the Documentation Paths tab and make sure the path to your SDK's documentation folder is added there - it should be [SDK]\docs\reference, where [SDK] is the full path to your SDK installation.
If it is not found you can add it manually.
After it is completed, use Ctrl+F1 while your cursor is on the item you want to display help for.

Related

Is it possible to build android widgets in flutter?

The fact that Flutter heavily uses the word widget makes it difficult to find documentation on this topic.
On Android (I believe this isn't possible on iOS), we can add widgets on our home dashboard, allowing us to see app-related information or to trigger one-click actions without needing to open the app in question.
Is it possible to build such "widgets" in Dart & Flutter? Or should I do that in java and somehow plug it with my flutter app?
Can you share an example of a resource containing one?
EDIT: I have no android development experience, but it sounds like using a drawable canvas might do the trick.
I could find some canvas flutter code, but I can't connect the dots yet.
EDIT 2: From this Github issue, it looks like writing android home widgets in flutter is a no go since Flutter has its own rendering engine. I'm keen on learning kotlin to get this done, but if someone knew of nice tutorials to help me with that, that would be immensely helpful.
As the OP mentioned in an edit, this isn't currently possible because Flutter uses a custom rendering engine.
Widgets are quite limited in what they can render; the documentation explains that only certain layouts may be used. You could theoretically use Flutter's software renderer to render to an image in a seperate instance from the main one and display that, but that would be very technical, likely not very performant, and not straightforward at all!
Here is a quite detailed tutorial for widgets that guides you through creating a few examples although in Java. The same logic applies with just a few syntactical changes for Kotlin as the classes are pretty much interchangeable. However, realistically, most of the work is in the layout with some wiring in android; if you're already familiar with Android & Java, keep in mind that Kotlin does add a bit to your app size (The Kotlin runtime adds about 7,000 methods and ~1MB to your debug APK from the kotlin on android FAQ) and since most of your logic should be in flutter you probably won't have all that much Kotlin/Java code if this is all you're using it for (although if you're new to both Java & Kotlin, Kotlin is arguably more friendly in some ways).
Also, to be able to communicate between your flutter app and the java/kotlin backend, you'll need to use platform channels as described in the flutter documentation.

Making a App for tablets with certain requirements

I need to create a app that will run across Android and IOS, although i would like to avoid the native languages of both and only use JS/HTML/CSS, after digging a lot online i think that the solution would be to use Phonegap and Ionic Framework
The app is not complicated i just have to create simple drag and drop games that the user can review at any point and make changes to them.
The whole point is for a medic to create profiles for the patients and be able to consult them at any time.
Now my question is simple: will this do enough? or should i look into anything else?
Phonegap or Cordova are good solutions for you, then you have to build your UI with HTML. For drag & drop you could use jQueryUI
In my opinion, you have to go through with the PhoneGap/Cordova plugins
also, and go through with the which IDE is used for Development the Application like Xamarin,NetBeans etc.

static UI analysis with my own grammar rules (want to make eclipse android visual UI guidelines checker)

I want to make eclipse plugin or standalone app that will help user to check if android xml layout files are according to android user interface guidelines (that I have added earlier from). User can also input his own guidelines into existed grammar rules. Also he can choose some UI guidelines patterns (ones that is created for his company or some existed ones). What's the best approach to develop this app? What's the easiest and fastest way? Which language/approach I should choose? Can you provide me if possible with some tutorials/books/examples for this? I have found that it could be done with JavaCC(but it's difficult,user should edit/create grammar rules). Also I have found some recommendations to do it with DSL(Domain specific languages), code generators but I don't know how to do this.
I am doing UI checker for my master thesis. It should enable general code analysis in next phases - for some other students (thesis) to continue with this project (tracking navigation, coding style,etc). I am doing part which checks xml files with my grammar rules(which can be added,edited by users) and shows visually in gui editor where is warning(font too big, colors not compatible, etc.). My checker would work for android, but other students will make it for ios and windows phone.Thank you in advance.
This tool already exists, it is called 'Lint' and already is built and executed automatically by the Android IDEs:
http://tools.android.com/tips/lint
The tool is designed to allow you to add your own custom rules and checks:
http://tools.android.com/tips/lint/writing-a-lint-check
There are other static analysis tools (PMD, FindBugs, etc) that can also be used with Eclipse already, that could also be extended for your purposes. I don't think you want to create your own plugin, but should extend the existing tools.

How to choose objects for your android application?

I am new to Android but not to programming. I have taken C++ in school and we have been taught how to create objects, but not how to build robust programs using multiple objects. So you can see that using java to build Android apps leaves me with questions.....
thinking like an object oriented programmer, do i just shop through a list of classes until i find ones that i think would suite my app
is there a definite method of choosing the best classes for your project
do i find an app similar to the one i am trying to create and try to find what classes they used
any thoughts appreciated!!!!!!
The best way to learn (for me, at least) is by making small incremental changes to an example so I can how all the various elements of it work.
Download the examples (listed here) - but accessible from your AVD and SDK manager tool from within Eclipse (Window -> Android SDK and AVD Manager).
Start by modifying those examples. They are the best possible examples you can get for much of what you will want to do.
I'd recommend you start with Tutorials and also read about Application Fundamentals - they should get you started. Also browsing Classes is useful if you like wading through lots of technical docs (I do). Those three links are definitely worth looking at.
Well first when building Android applications you need to:
Figure out what your application will be, and how it would work.
Next you would need to find out how you will implement the android classes.
i would recommend first reading a book on Android development. One that really helped me and made me an advance developer was CommonsWare
You should really get these books. When you finish you will be well on your way.

Invoking a class from one project in another project?

I am very new to eclipse and android developing in general and need help with the following. I have built two android projects in Eclipse with the android SDK:
"ORF401 Project" - targets Android 2.2 platform
"Map Project" - targets Google APIs 2.2 platform
I have followed the steps as specified by the standard Hello World Google Maps for android tutorial and have gotten the Google map to display on the emulator when I run the second project.
I have a menu set up in the 1st project for which one of the options is to load the map. However, I'm not sure how to load the map within this project since only one build target can be specified for each project, and so I cannot specify the Google Maps API as a (additional) build target. Is there a way to call the main .java class from the second project within the first project? I see where a reference can be made to the 2nd project under the project properties, but I'm not sure how to make use of this. One possible solution I found on the web was to add the following code under the switch case in the first project:
Intent intent = new Intent(this, {googleMap}.class);
startActivity(intent);
I presume this would require an additional googleMap.java class in the first project and also another activity, but I can't get it to work. Can anyone make a suggestion as to how I can accomplish this?
If the code for either or both projects would help, I'll be happy to post it. Thanks
The main idea with projects is to have one project per application that does some thing.
I assume your application needs to do something with maps, as well as something else. There is no need to split those ideas. Keep them in one project, because they make up one single application that you develop.
First thing I would suggest - read carefully about activities and intents. Head to http://developer.android.com - everything's clearly explained.
With that all cleared up you will see the point in making some button, which, being tapped, opens a new screen with the map feature that you've developed. And then let's you go back or do something else, like open a new screen, a browser, etc.
And give up trying to call the other project from a different one :) It's not the way I think you want to do stuff.
Just to make sure I'm not misunderstood - of course you might want to have two projects. But those will most probably result in two separate applications. Luckily, applications may also interact by intents, or content providers, or a couple more. Just see how Contacts app takes you to GMail app if you want to send a mail. If that's what you want to achieve - still need to read about intents.
edit:
Here's the link I mentioned about in the comments:
http://android-developers.blogspot.com/2010/07/how-to-have-your-cupcake-and-eat-it-too.html
It explains how to achieve the 'additional target' that you would like to have.
There are ways to call a class from one project in another project, but there are bigger problems here. The first project can run on any Android device. The second, however, requires Google Maps APIs. You won't be able to invoke it anyway, because it can't be installed unless you're in an environment that supports Google APIs. There really is no benefit to doing this, unless you have additional functionality in project 1 such that it can exist without project 2.
I would suggest using the Intent method rather than trying to hack something together that allows you to access another class. Regardless, though coupling these two together like this seems overly complicated and error prone. I would suggest simply embedding the mapping functionality in project 1 and requiring Google APIs. Most mainstream device support them anyway.
If you're married to the idea of having two separate projects with different build targets, I would suggest looking into using BroadcastReceivers with a custom intent that you broadcast from application 1. I don't believe startActivity will work across application boundaries because of class loader issues, but I could be wrong about that.

Categories

Resources