Creating softkeyboard with custom emoji - android

I have been tasked to create a new android 3rd party keyboard that supports customized emojis (My own Icons) from assets.
I want to implement a softkeyboard with my own emoji icons without using UniCode or my custom UniCode.
Questions:
If I create a custom emoji, with some string of characters which does not map to the standard set of emojis, and text this message to a friend with the customized app/keyboard, what shows up on their device? The regular ASCII characters string? or the image.
I have read two ways to add image to textView.
Html.ImageGetter
Spannable Image (String consisting of image)
Which way should i prefer?
Is there anyway to display(send) the customized emoji on the recipients device without downloading the app/keyboard?
Is it possible to send text with Image(Emoji) to other apps like facebook,skype and for messaging.
Need suggestions.
Simple Words
I simply want to send my custom(Emoji icon) to other apps as this app does with out using unicode or with my custom UniCode.
Thanks.

To answer the first part of your question, by definition Emoji are encoded characters - they are a part of unicode. See here:
http://emojipedia.org/unicode-8/
There are many references to this if you look. You will also discover that for a long time Apple and Google used two different sets. They are now merged, but then Android manufacturers and carriers have added their own emoji "versions."
Changing the keyboard to have custom images will not change the data that is transmitted to the other device. So, to answer the next part of your question: what shows up on their device is whatever the ASCII or Unicode character that was transmitted, not what the sender "typed."
In other words, to answer the next part of you question, generally speaking there is not a way to send custom characters to another device without them having your app. A keyboard would not suffice because apps do the job of displaying text/images. So unless an app knows that you are the content provider or source or whatever of the image, it will display whatever it knows to do. So, a custom keyboard won't even display custom emoji on your own device, unless you are also using your own app.
I said "generally not possible" because here are your options:
You can become a part of the Unicode Consortium (http://unicode.org/) and submit your emoji images for approval to go into a future version of Unicode. There are future emoji already in the works, FYI. That will likely take several years, by the way, and it's unlikely they will approve commercially biased images. However, unicode has the capacity to handle billions of characters and is hardly even close to being full (Unicode 16, not Unicode 8 - Unicode 8 is full). Even then, the Android team would need to adopt it and include it in a future release like smileys and the current set of emoji are.
You build your own app with your own emoji and get people on both sides of the communication to download it, like everyone else does. IMO, this not ideal for anyone but the developer of the app. Still, the ones that people enjoy I applaud for their work and success. That industry is fickle and difficult to really gain a presence in.
I'm a part of sdmmllc.com - and we're trying to develop a messaging "platform" exactly for situations like yours. We want to allow messaging apps to "discover" other messaging apps, incorporate features like custom emoji, without the user getting confused or having to download tons of apps. This is similar to plug-ins in web browsers. Our developers love us, our users love us, but it's a slow process.
Develop a competing platform. (And good luck with that - no one really seems to be getting the concept, except the few developers we have, and the hundreds of users that download our app every day and love our idea and platform... but there's no money it so far...)

you can only use those uniCode which are supported. you cannot add your own for generic use. But you can use it with in your app and between your app. It is not possible.
In short it is not possible to create your own Unicode. But you can do it with app to app. and on both ends you have to store those character in database. and match them when they get..

Related

Question regarding Arabic on Google Mlkit

I have a question about harakah on Arabic language, the result that i get from MLKIT doesn't provide arabic with harakah in its text, only arabic without it.
I tried making a feature for my flutter app, and it needs to recognize arabic words from gesture that user paint. So I use google_mlkit_digital_ink_recognition, The example works great, i downloaded arabic model but the problem is it cannot read arabic word with harakah that i input (paint) in the screen. I tried reading documentation and search about this but no dice.
The result that i get is only arabic without harakah, and the feature i plan to make need it. Backend will send a text (1 to 4 arabic alphabet with or without harakah) and user need to paint it on the screen, MLKIT will recognize the strokes user made and then the app will decide if what user paint is correct or not, this is what i plan to make. Is there a way for MLKIT digital ink to input and output arabic with harakah with this plugin? Is there alternative or a better way to handle this? or do i need to make and train a custom modal for this? or am i missing something that needs to be done first?
There are some app that i see in google play that's a bit similiar, i think i can achieve similiar result like the apps i see with clipper and path but they don't have harakah on it, the app need to know if it's correct or not, and the text that i need to match comes from backend which may vary and more complicated. There's other alternatives that i thought, instead of text backend send me an image, use scribble to generate image on what user paint, then match it with image from backend with image_compare, but i'm not sure since i haven't tried it yet. The chance of getting them right when matching might be low and this will burden other team since they need to make the image one by one instead of just text. Right now, the fastest way i can think of is using MLKIT since i need to work on this feature this late month or early next month. I hope you guys can help, Thanks.

Mobile: Accessing/sharing/modifying content/elements in other apps

Today in browsers, various mechanisms exist to access and modify a web page. These can be implemented normally via extensions who employ various DOM access technologies such as Mutation Observers. This feature, for example, allows an extension to detect the life-cycles of DOM elements and augment them or even insert its own DOM elements at appropriate times and locations.
In mobile, I'm aware of Lastpass that employs a technique somewhat akin to this, where it is able to detect userid and password fields and auto-fill them. It seems they use mobile accessibility features to accomplish this (at least in iOS). I'm sure there are more apps that can do similar things.
However, I'd like to push this further, and be able to read the content/elements of another app ('serving app') at the very least and manipulate it and display it in our own app ('client app') much like the extension example above. A simple example can be an app that streams content, where we want to read this stream, filter, augment it, and display it in our own app. Even better, be able to augment it in the app itself and not need to import it into ours. Note, the serving app is not necessarily aware of the client app and does not share protocols, app ids, etc. BTW, I am aware of iOS's sandboxing, inter-application communication, and pasteboards.
What is the current state of mobile software development whether hybrid, indigenous, or progressive web application development in this arena (iOS and Android)?
For example, if we're in Twitter, we'd like to change the color of a tweet from blue to green or insert a 'star' object at a particular spot in the tweet, where pressed will copy it into our own app. Something along those lines.
Any thoughts on this (iOS and Android) will be greatly appreciated.
For example, if we're in Twitter, we'd like to change the color of a tweet from blue to green or insert a 'star' object at a particular spot in the tweet, where pressed will copy it into our own app. Something along those lines.
I cannot speak for iOS. On Android, what you want has never been possible, for obvious security reasons. An app has no means of directly modifying the UI of another app, except perhaps on rooted devices (where ordinary security restrictions can be bypassed) or on custom ROMs (where you can build in security weaknesses that meet your needs).

Enhance(/manipulate) a few popular android app's text(/visual) outputs! (examples: whatsapp, gmail, facebook, ...)

Think you ideally needed to mark up or censor a list of keywords in visual output systemwide, yet cant require to root devices.
That still works on websites through browser plugins.
But is it any thinkable to mess with popular apps like whatsapp, facebook, (one at a time) ?
Reading: I know it is possible to read/change some text inputs yet not generally/all? http://developer.android.com/training/accessibility/service.html
A universal way for markup could be determining screen coordinate positions of contents by OCR and set transparent overlays on the fly + algined smooth with scrolling, just not convinced how well this can both work and be battery efficient (we could cope with low accuracy in text recognition)
I'm adding all my reputation as a bounty.
Laying out a good way for any one popular app (top 20 social apps) qualifies as an accepted answer!
Laying out solution for "1." only but for two or more apps also qualifies.
Showing specifically why/where it will work with one app but not with another also qualifies as an accepted answer.
You cannot modify the visual output of an app. The closest thing you can do to accomplish this is like what Facebook Messenger and LastPass use, which is a feature that allows them to draw over the top of other apps, and LastPass specifically can also read the contents of another app via accessibility permissions. However, that just allows them to draw over the existing apps, and in the case of LastPass, fill out text into input fields. Even with the above options, I don't think you'll be able to accomplish what you're looking to do.
I don't think it's possible. Each app on the Android runs in its own sandboxed environment. You can only communicate through Intents with other applications. So unless they're listening for bad Intents(which I hope they're not), you can't really do anything to those applications.

App Development Localization Using Custom Fonts

I'd like to localize an iOS and Android app for over 25 different languages using a custom font. The problem is no new fonts cover that type of ground. What's the current best practice for this problem in app development?
I've only come up with the following 2 solutions, however I'm unsure either are possible or a good idea.
1.) Hire a font designer to create a massive custom font across at least 3 different weights (regular, bold, italic). But that could be extremely costly considering the app license for some single-weight simplified Chinese fonts are 5k alone.
2.) Use a custom font that covers about 10 languages thanks to Latin characters (e.g. Proxima Nova) and then similar-looking fonts for unsupported languages.
It seems to me the current best practice is to use a custom font that covers a bulk of Latin-based languages and all unsupported languages fallback to the device fonts. But I've experienced problems there as well particularly with localizing dynamic third-party data from Facebook connect. If I'm in America and my friend in China has Chinese characters in their username a custom font outputs little square glyphs instead of falling back on the device's Chinese character set.
In any case both solutions add quite a bit of file size to the app which itself could be a deal-breaker. For solution 2 I've also considered using static images instead of embedding additional fonts, but that also presents a problem in localizing dynamic third-party data and creates a ton of work if the app should ever need updated.
Any suggestions would be greatly appreciated. Thanks.

Testing transliteration for Android

I am working on an android project that requires user to select something out of a given list. To facilitate user's interaction, an in-app search box is provided.
The list can have many language scripts like Spanish, CHinese, Devanagari, etc. But the user is supposed to type using standard latin alphabets only.
For example - list contains a word नमस्ते and to select this, user is supposed to type"Namaste"
To achieve above transliteration, certain database is maintained which consist of all the unicode characters and their corresponding latin alphabet characters.
Having stated the motive of the app, here is my problem -
How to test for the transliteration functionality? Manual testing is impossible as there are languages like Chinese and Mandarin involved which has exhaustive set of characters.
In order to automate this, I searched for some libraries that support back and forth translation and found a javascript library transliteration party
I plan to translate using that and reach an equilibrium then use google translate API for phonetical reading. Is it advisable?
Any other optimal solution is welcome. Thanks in advance.

Categories

Resources