I am currently trying to write an application which invloves syntax highlighting codes. (HTML, XML, PHP, JavaScript, CSS and preferably more).
It has been going very well but I have come across a probelm: syntax highlighting. I have written a class for syntax highlighting XML myself, but it is incredibly slow, inefficient and takes so long. I loaded, as a test, a 600 line XML document, and it took two whole minutes to syntax highlight. What do people recommend for Syntax Highlighting on Android? Are there any good libraries? Are there any good algorithms I can use (I don't mind rewriting it from another language), or any standard techniques? What about Regex?
I also have the problem that when I did the 600-line XML test yesterday the EditText widget I was using could not cope with the coloured text and eventually I recieved a ANR error, but that is a different question I will post elsewhere, though if anyone does incidentally have a solution that would be great.
Thanks so much!
You already have a lots of syntax highlighting tools available in Javascript. You may need to do slight modifications. Take a look at this. I use it in my blog everyday.
Related
I spent like a half hour researching and many suggestion are either years oudated/no longer existent, and me being a programming beginner who doesn't know how to do more advanced things than basics like adding text/buttons/etc. and basic programming logic into Android Studio activies, I'm totally lost. Some suggestions mention inserting HTML with JavaScript references but I haven't found a guide that explains how to do it, and those making the suggestions listed some cons, too. E.g. How would I display 5^2 (without the '^' and the '5' in superscript form), '1/2' in neat fraction form, etc., in a TextView or whatever other text component? I searched through the Android developer reference as well but didn't see anything that 'intuitively' stood out to me, for the lack of a better word.
You could achieve this by using WebView and JS. An example of such library for Android is: https://github.com/KaTeX/KaTeX.
I think you can use MathJax for doing that. Please refer to this GitHub repository.
MathJax
In my android app, I want to display japanies characters verticlaly with ruby annotations. The text and asnnotation comes dynamically from a service. Prestty much something like this ([https://www.w3.org/International/questions/qa-ruby-data/vertical.png][1]). At first glance this seems to be a solved problem. But surprisingly I dont see much material on Internet about this scenario. I am skiming through various topics in android but no luck. Can any one share some resource that I can look into.
I already came across the /n approach, Honestly felt we can solve this little better (not sure though)
In your, Textview use this line
android:rotation="90"
like I set the text verticle.
I'll start with the fact that I'm quite new to Android
app development and I came across a real App screen, that I thought will be a good practice to convert to XML.
Although I successfully copied some parts of it, I believe I lack a little bit of knowledge to achieve that goal. So I hope to learn from your answers.
Please keep the answer as clean as possible since I wish to learn forward from it.
Thanks in advance!
NOTE:
1) The icons on the gray line are clickable.
2) the X on the light blue line is clickable and deletes the line.
So, I create for you quick demo app(it is not as good as for commerce practice). How it looks and works from inside you may see here in GitHub repo. Hope I help you!
Things you try to avoid:
hardcoded text & colors in XML
not consistent id-naming
none-dimensional code *, for example like this - android:textSize="16sp"
* - I mean use dimens.xml, for instance - android:textSize="#dimen/default_input_text_size"
I will recommend you read a great book:
Clean Code - Robert Martin
Also, I support #FrancislainyCampos post. You should try to read also about design and develop tools to think and do more consistently with Google recommendations.
Although I've heard of some new tools that proclaim to be able to automate the task of converting design screens to xml, I don't think that's wide spread around the Android community yet. I think the best tip for you here is just to actually type each element on the screen not converting it but making the layout happen. There's a few tutorials on how to use Constrainst Layout to achieve that on Youtube. I'd also suggest this course here on Udacity that explains the step by step on creating your first screens for Android.
Hope that helps.
I am looking to start writing apps for mobile devices. I know a little about this subjec, and I am proficient in both java and python. However, before jumping into creating apps I wanted to get the community's input on a question I have not yet found the answer to:
How/Where should I begin?
I understand this question is fairly general/basic for a community that focuses on solving/debugging complex programs, but if there is a recommended tutorial (or specific platform) that will help a beginner(such as myself), it would greatly reduce the frustration and amount of monotonous questions asked on this forum and others.
Regards
Coursera is offering 3 courses all using android development which started last week. That would be an excellent starting point for anyone:
https://www.coursera.org/specialization/mobilecloudcomputing/2
How/Where should I begin?
I don't know about you, but I often learn by example more than reading. You mentioned that you're proficient in java so thats a great start. After you understand the Android SDK it's really only the UI good practices you need to learn. So here's my suggestion.
Start off with something super simple. Let's say, create your own version of a calculator. Something that can add, subtract, multiply, and divide. This should be dirty, ugly, but works correctly.
After doing this, take a look at some other android calculators on the play store. Check out Simple Loan Calculator. I use this example because it offers a lot of android UI components. ViewPager, ActionBar, etc. Download this app, take a look at it, and try to mimic it. This should provide an idea on how to work with the android UI components.
What's next? After you have done these two apps you should be relatively ready to tackle your own project.
HTML apps are easy to port across multiple mobile platforms. I have set up an Android HTML template as a starting point. You can just import this project into Eclipse and take a look at that.
https://github.com/jakewp11/HTML5_Android_Template
Here is my experience for ios,
There are three things that I consider as pillars
Objective C
Memory managment
Design patterns
The first one looks obvious but I'd stress on learning concepts like protocols, categories, extensions. As a beginner I thought that learning the syntax was enough, but time and again I had to jump back to the language concepts to understand what's going.
The memory managment , the most talked and confusing subject and now since we have automatic referenc counting to make things simpler and often new Dev skips learning memory concepts (I did it). So I suggest you to have an idea what actually happens under the hood of arc " the manual memory managment"
The design patters,
When I started off , to pass data and control , what I used to do was achieve every thing through the only design patten I knew (target action) . I lack the knowledge of design patters didn't how easily I could achive better results with less code.
Some resources:
Dev.apple.com
http://www.raywenderlich.com (one of my best tutorials are here, you can find one on design patterns)
http://rypress.com/tutorials/objective-c/
And yes , the sample projects at Dev.apple are the best tutors.
I've been through the Android tutorials - these do a good job of introducing how we can hand-roll an Android user-interface. Actually, I do not need that level of control right now... I'm looking for something simpler...
I'd like to make an Android app which will mainly contain a number of standard UI widgets, nothing particularly fancy. Having done some VB development a long time ago (yes, I know it's crap!) - I particularly like the ability to paint user-interfaces with an interface designer and then add in the relevant callbacks via the IDE. I'm using Eclipse, so for now solutions requiring net-beans or other IDEs are not particularly helpful.
I'm well aware that this practice often produces sub-optimal code, and less than beautiful interfaces. That's not really a concern here. I just need to produce a certain effect quickly in order to prove a concept. There will be plenty of time later on for optimization if my idea is good enough.
If you create a layout xml file you get "drag/drop" for the activity layout. It's not perfect, but you should be able to accomplish what you're asking for.
How you were used to VB development won't work out for you.
You will have to create your interface in XML, and put events to the objects by code. There is DroidDraw but it won't get you further then the plain inbuilt IDE of Eclipse.
When creating XML layouts think like it a HTML layout, nested objects, tables/linearlayouts etc...