Hey guys, random thoughts/rant for a software idea.
I was thinking of the next evolution of the Intent system on Android. I always thought OSs seemed to spend almost no effort on integrating softwares on it. It was almost like an afterthought every time. Android was a huge step in the right direction. The next step would have to be very definitive, and backwards comparable of course. It would have to be something users want, and make it easier on the developers as well.
This system would be called something along the lines of 'Sentence'. It evolves with developer and end-user choices and, if I'm right (here's the big pitch, would have the potential to make software measurably more stable, secure, efficient, and user-oriented without really changing any behavior on the developer's side. Of course it has the same potential to be stagnant, but I think the users would punish (unwittingly) developers who lagged behind or didn't put in the effort.
The sentence system allows a user to build a sentence to discover not only the correct application, but an infinitely specific task before ever encountering UI. It is reminiscent of auto-completing sentences in Google Search. An example is the quickest way of demonstrating. The [] specify user interaction and ** specify user choice (probably a button press):
I would like to
[*send*] [search] [open][...
[a][*multiple*][...
[2][*3*][4][5][CUSTOM][UNTIL...
[files][emails][smss][*pictures*][...
[*to*][GO][...
[emily][drake][*george*][...
[*and*][GO][with message][...
[emily][*drake*][george][...
[and][GO][*with message*][...
[CUSTOM][*check this out*][...
[*GO*][and]
this immediately opens the camera app for exactly 3 pictures. Once the 3rd picture is taken, the UI informs the user that the next action is about to take place. After a short time out, the 3 pictures are sent to George and Drake. After the first shot, the user can shut off the screen or pocket the device knowing the timeout will occur and then the task will continue. Being an OS-level function, the user can trust it regardless of the app.
Unless the app task fails. If Apps that use this system can't provide tasks that don't fail, they will become unpopular far quicker than the tasks that do fail that users just deal with anyway.
Furthermore, many apps can be published virtually without any UI at all, significantly cutting down on development time and allowing the dev to focus on the task and functionality.
This could turn around voice activation as well, since the user quickly understands the routine task format to get the best results, and would be more confident to provide far more complex long-winded sentences that the OS could understand perfectly to the detail.
While some sentence lines will be defined by the OS, the developers and users alike will be able to define the evolution of the sentence tree. Developers will make the smart decisions, while the users will crowd-source the popularity of each possible route. The most logical and/or common sentences would quickly be the norm. If the OS prioritizes specific routes over general ones, then developers will be incentivised to make their apps as task-specific as possible as well as as task-plentiful as possible.
The losers in this quickly become apps that use ads, apps that rely on 'convincing' the user of something with UI, and of course utility apps. Of course, this brings back the main reason for 'pro' apps: functionality. The pro version will have these features. The free version will only have these.
There wouldn't be a way to exploit the system or flood it. If the functionality doesn't work, the app becomes not only intrusive and annoying, but offensive to the user as it promised a specific task and performed something else entirely. Those apps simply wouldn't survive.
Of course, application for this kind of thing would have to be imposed by Google et all for it to exist, but there is another way. It can be implemented as a shared library that provides the necessary interfaces and cache all the necessary information for other compatible apps. That would work for a full implementation, and I can't see any features that would be missing. Backwards compatibility would still work just fine, as the app would simply fit existing intents into this sentence tree as well as it can. The sentences would simply end up being smaller. The best part is that with the right effort, this sentence tree could act as an 'Intent builder' for existing android apps. I bet I could build a handler for the tree that would get me through the above demonstration with the standard Gmail app using known intents. See where I'm going with that?
I would build it myself if I had more time, but I'm def interested in helping (or instructing) anyone who would like to take a crack at it. I think if someone got this idea into Cyanogenmod, we'd have a pretty huge win, and Cyanogenmod would have an incredibly unique UI gem to show off to stock users.
Honestly, I see no way that a system similar to this won't be built and become the standard within a decade. It would be trivially easy to build as well although some of the decisions to be made might not be so easy. So yeah, that's it. Rant over.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Note: This version of the app has hit its token limit, for more info on my plans and its future, check out this post: http://forum.xda-developers.com/showpost.php?p=56228193&postcount=553
Hello guys! From the creators of Sliding Messaging Pro, I would like to announce one of our new projects: Talon for Twitter!
This one, along with klinkdawg's EvolveSMS are the two brand new apps that we have been creating the past few months. They are full of polish, features, and beautiful design and KitKat style! Both of these apps are availible on the Google Play store today, but lets get to know Talon a little first
Talon for Twitter - Google Play Store
-----------------------------------------------------
Play Store Description:
Get fully immersed in your Twitter with this beautiful, feature PACKED Twitter client with a design that actually makes sense!
Created with Android 4.4 (KitKat) in mind. Includes full screen layouts, stunning animations and more! Of course that doesn't mean earlier versions of android get left out! The only thing that wasn't able to be recreated in Android 4.3 and below was the transparent navigation and status bars... Sorry! It just isn't possible
Beautiful, up-to-date layouts, designs, and neat animations isn't the only thing Talon has going for it though! The list of features is enormous as well, doing everything you could ever want from a Twitter app right off the bat. Even though it is new, I have added every single major and minor Twitter feature that I think is absolutely essential plus a ton that most people wouldn't even think of. Here is a pretty comprehensive list of its features:
Twitter features:
- Live streaming support
- Support for 2 accounts
- View your timelines (main, mentions, direct messages, links, and pictures)
- View retweets, favorites, Local and world trending, user profiles, Twitter lists, and more
- Favorite users
- Search Twitter
- Delete, favorite, retweet, quote, and reply to statuses
- view replies to statuses
- Update your profile picture, banner, location, and user description
- block, follow, and add users to lists
- search for your friends to tweet at
- Attach pictures to your tweets
- Attach locations to your tweets
- And the list goes on
Customization features:
- Extremely powerful developer theme engine (Read the second post )
- Choose between either "Talon" or "Hangouts" layouts
- Choose from 3 beautiful base themes (light, dark, and pitch black)
- Custom text sizes
- Night mode
- Auto-Refresh options
- Custom notification settings
- And many other goodies in there as well!
App Features:
- "Talon Pull" to be always listening for interactions (mentions, retweets, favorites, new followers, and direct messages)
- Expandable, actionable, and dynamic notification system
- Full app popup
- Full emoji support
- View in-line Twitter and Instagram pictures
- View in-line YouTube thumbnails
- Native YouTube player
- In-app browser
- Complete landscape and tablet modes
- Advance to new pages in a "windowed" viewing mode
- Never leave your timeline with in-line replies, favorites, and retweets
- Actionable toast bar so you always know where you are and can jump to the top
- Hiding action bar
- "Do not disturb" mode
- Widget for main timeline
- DashClock Extension
- Draft system for unsent/failed tweets
- Google style pull to refresh for quick refreshing
- Save tweet pictures
- Share content with other apps, to and from Talon
You will never go back to your old Twitter client again!
Enjoy Talon and don't hesitate to contact me with questions, requests, or bugs!
Thanks!
Contact me (Luke Klinker):
Email: [email protected]
My Twitter: @lukeklinker
Talon's Twitter: @TalonAndroid
Google+ Beta Page
Emojis
Here are two different emoji plugins for you to choose from, choose whichever suits you best, install it and never worry about it again!
Sliding Emoji Keyboard - Android
Sliding Emoji Keyboard - iOS
Permissions Explained:
- Write to Storage: Saves pictures to your SD card and writes them into the cache.
- Read from Storage: Used when backing up settings.
- Location: Used for trends and attaching locations to tweets.
- Network Communication: Obviously have to be able to interact with Twitter
- Network State: Used so the user can toggle background sync to only over WiFi.
- Run at Startup: Re-schedules the background refreshes.
- Keep Awake: Used for background refreshes and waking the screen.
- Vibrate: Used for the notifications.
Credits:
- Jacob Klinker: to many things to list! Tons of ideas, support, and inspiration
- Aaron Klinker: Icon Design
- Other open-source libraries and resources used can be found under the 'Get Help' section in settings.
-----------------------------------------------------
Screenshots:
-----------------------------------------------------
Closing Comments:
I have worked really hard to bring you guys a great experience right from the start this time and it really shows, from the login screen to the timelines, you will be fully satisfied with the design, execution and finesse that Talon brings to your phone. It isn't going to take months to get up to speed like Sliding Messaging did. I have designed this to be efficient, fast, and just work, right from the start. I learned a ton from that app and Talon goes to show just how much.
Hope you enjoy it as much as I do, sound off in the comments with question, concerns, suggestion, or whatever else you feel like saying about the app!
One more thing to say before I leave you here, please remember that this is XDA, and you are all expected to be a little bit different Android users, if you are having a force close or something, I would like you to be able to post a logcat of it. If you are wondering about why I did something the way I did, then I will probably explain it to you in a programming sense instead of how I would to a normal user on the Google+ beta page or something, because that makes much more sense to me, is easier on me, and you should be able to understand it a little bit better... Just keep that in mind and stay on topic please
Frequently Asked Questions
Frequently Asked Questions
1.) Push Notifications
I am just going to say this now, before anyone asks: Push notifications will not be coming to Talon unless something changes with the Twitter APIs. I have created "Talon Pull" with is simply an always on, listening/streaming service that will receive new tweets from Twitter whenever your Twitter handle is included. To read more about this option, look at the "Talon Pull" section below the "Reasons" section.
Reasons
This will be the more technical part of this post, if you don't want to read and understand it, then you will have to just accept my answer from above. If you don't accept that I know what I am talking about... Then by all means, read on, I will try to keep it as simple as possible.
To access Twitter, they have provided us with the REST APIs (currently version 1.1). These APIs allow developers to communicate with Twitter in real time by just submitting requests to get data from the network. They make it relatively simple - if you know what your doing - to obtain the data that they allow you to get and store, but there are plenty of limitations to these APIs, which make sense: Twitter is a completely free service and make their money off of advertisements. They want people to use their official Twitter products (such as the web or their own Android app) to access their services because they are able to place advertisements in them and that is the only way they make money. So they just aren't going to make some things available for 3rd party developers.
One of those things is their push notification system. As I said before, they allow us to access their services with these REST APIs, but they also have a Streaming API available so that a 3rd party service, such as this one, could be "always connected". Sounds great right? Maybe, maybe not. More testing probably needs to go into it, because it is very new in Talon. For the past few weeks though, I can say that it doesn't seem to take up much more battery than sycning on an intervol does. So try it and let me know. I have done the best I can to optimize this service, but if you want to know more about it, read below in the "Talon Pull" section
What these streaming APIs should be used for is a server side interaction that would then connect to GCM (Google Cloud Messaging) and send push notifications from there. I would love to say I am working on something like this, but it isn't possible for a developer like me. I don't have the time, resources, or knowledge to set up a complex server like this. The knowledge I could get, but I am a 20 year old kid, working off of this 1 MB/sec internet connection while being a full time college student at the University of Iowa. I wouldn't be able to handle the upkeep of the system like this or the traffic. I just don't have the backend necessary for this type of thing, and there aren't many developers who do. So push notifications from the server side? Way out of the question.
That leaves only one thing to do: wait. Maybe Twitter will open up some kind of push notification service to it's developers, but I wouldn't count on that. The ideal thing for them to do would be to set up their own GCM server for us to communicate with, but I don't see that as being likely at all because of the advertising. That would take away one of the main draws for their app, leaving it with almost nothing that 3rd party developers can't do. For now though, "Talon Pull" seems to be working well and I would encourage you all to try it out. Battery seems to be fine, the one drawback is that you must be connected to a datasource right when the interaction happens or it won't be saved or shown.
Talon Pull - My solution/workaround
As I said before, this is NOT push notifications. Push notifications are sent to your device to notify you from some kind of server. They aren't always on, and only turn on when your device receives the info from the web service.
Talon Pull on the other hand, uses Twitter's Streaming API to just create an "always on" service to be constantly listening for and streaming tweets that contain your Twitter Handle. The way this works is that you are signed in with your API keys after you turn on the option to enable Talon Pull. I then just create this "listener" that Twitter's servers will send new tweets to. Luckily, they will take care of most of the filtering of those tweets on their end, to reduce the load as much as possible on your device (because before the filtering, it literally will receive every single public tweet that is happening. It was amazing when I first flipped and saw the tweets flowing over my log haha). So we filter it down to as few of tweets actually reaching your device as possible, then I start broadcasting the notifications when you receive the new ones.
Overall, it is a relatively simple process, the problem with it though, you have probably already realized, you have to be constantly connected with a data service or the app won't know when to receive the new tweets. Obviously that is the part that is going to end up taking the battery (if it does), not "bloated" or "un-optimized" code as some of you I sure believed. So far though, through my testing, it doesn't seem to have a very big impact on battery overall, but I suppose that it potentially could if you are using Twitter that much more than I do.
If there was a better way, I wish I could find it. I think that this is the method that most 3rd party services use to send you those fake "push notifications". So there ya have it, hope you learned something. It works well and it is the only way to get a lot of information like who favorited or retweeted your statuses
Conclusion
Thanks for the read, if you made it all the way, hope that gives you an idea as to why push notifications just aren't even an option at this point and what my solution to that problem has been, even if it is not ideal. It works, and it seems to be working quite well for me.
So just know: "Talon Pull" isn't quite the same as push notifications, but it is as close as you are going to get and is working better for me than I would have ever imagined. Enjoy!
2.) Translucency
Why aren’t my status bar and navigation bar translucent like in all of the screenshots?!?
This is an Android 4.4 KitKat feature only. Get a new phone/ROM if you want it.
3.) Theming Support and Limitations
We have created a pretty powerful theme engine for Talon and EvolveSMS this time around, but it isn't without its limitations.
The main app color will always be orange. Don't ask to change it. That isn't something I can theme dynamically or read from an add on package, themers can change the orange glow on the in-line buttons (favorite, retweet, and send), but that is as much as your are going to get with that one.
4.) Viewing users who "retweet" and "favorite" your statuses
This is another thing that isn't going to happen at this point. It isn't possible to get the user ID's or their names with the current version of the API's.
Maybe Twitter will open this up in the future, but I wouldn't get your hopes up.For now, the best you will get is the numbers on them
The only way to get this information is through the use of "Talon Pull" and the Streaming API's. When you get a retweet or favorite, it will be put in the interactions drawer on the right side of any activities with drawers.The only way to get this information is through the use of "Talon Pull" and the Streaming API's. When you get a retweet or favorite, it will be put in the interactions drawer on the right side of any activities with drawers.
5.) Clearing the Cache
If you know much about caching in Android, then you may wonder why in the world I would want to clear it every time you switch themes.
The answer is pretty simple: to vastly improve the performance and the smooth scrolling in the app, I save the profile pictures according to the current theme's style, whether that is circle (like the "Talon" layout) or square (like the "Hangouts" layout). This preference is also available to themers in the add-on themes.
By caching them directly as circles, it alleviates the need to do it on the fly which could consume quite a bit of processing power on older phones and would just be a complete waste to render them like that every time.
You may think it is a hassle, but you would be thanking me if you knew the difference it makes.
You can also view the current cache size and clear it manually from "Advanced Settings".
6.) Battery Consumption
If you use Talon a lot throughout the day, it is going to take up battery, simple as that. I find that on a 30 min refresh intervol for the different timelines and manually going in and browsing/updating throughout the day, it takes about 4-5% of my battery. I would say this is pretty normal because there are days that Google+ takes up to 10% with just casual browsing.
If that isn't acceptable for you though, then there are a few things you can do to reduce battery consumption:
1.) Turn down the refresh interval on the timelines. This is the big one. It is those background services that are going to drain your battery.
2.) Turn off "Refresh on Startup".
3.) Turn off "Talon Pull" and "Live Streaming"
4.) Don't have it sync the second account's mentions
And if all else fails... Get off Twitter and do something productive for awhile =D haha any app that accesses the internet and refreshes as much as a Twitter client is inherently going to use more battery in the background. There are ways to reduce it, but not always ways around it!
7.) Custom ROMs Immersive Mode
My custom ROM has "Immersive Mode" and Talon doesn't seem to play nice with it! What's up with that?!
The way that immersive mode works in your ROMs currently isn't so hot unfortunately. There is a reason Google didn't put it into the whole system because app developers would have problems implementing the "translucency" with conflicting system stuff.
Not to fret to much though, I was able to get things working smoothly with it in Talon. The problem was that my ListView's are expanded through the different system bars. This can be a big problem if you try to switch to "Immersive" in the middle of doing something in the app. You will notice the margins get all wanky on the top and the bottom of your lists.
It can be easily solve though by just restarting the app by swiping it out of your recent apps screen. Sorry, but that is the best I am going to be able to do here, Translucent bars an "Immersive Mode" just weren't meant to work together.
Theming in Talon
Theming in Talon for Twitter
Real quick, before you get to far into the content, I want to let all you developers know about one of, if not the standout feature of Talon and EvolveSMS: one incredibly powerful theme engine.
Along with these apps, me and Jacob have completely redesigned and rethought our old "Theme Engine" from Sliding Messaging! Although the Sliding Messaging one was cool and great for the average user to customize, it was slow, cluttered, limited, and just bad design from a developer perspective. This won't be an issue with these apps though. We remade everything about it to bring you the ultimate themeing and customization experience, without the bloat and slowdowns. You won't be disappointed when you see what it can do!
All this theme engine takes is a little bit of knowledge about layouts and resources in Android, along with the Android SDK to compile and distribute your package as an APK, then you can make both of these apps into literally ANYTHING you want. We are able to read the layouts, drawables, and some of the colors directly from your compiled package and place them in our apps! Sweet huh, you thought this kind of design your own thing was only for homescreens
And the best part: it is completely free and you can easily share these themes with anyone when you are done by just sending the APK or putting it on the Google Play Store!
For more info on these and to start making Talon really your own, check out these links:
1.) Talon Theming Example/Walkthrough on GitHub
2.) Google+ Community Theming Section - A great place to share so anyone can see and use your themes, not just XDA users
3.) Google+ Theming Post
gonna try it out soon
Amazing Twitter app, absolutely loving it so far. It is just stunning, and kudos to going with transparent navbar instead of immersive, it looks fantastic and doesn't require a gesutre to get to.
Yeah, I completely agree that transparent is the way to go over immersive on something like this, it takes more work, but definitely with it!
Why do you only support for 2 accounts? It's just a question!
Pac-Man said:
Why do you only support for 2 accounts? It's just a question!
Click to expand...
Click to collapse
Well, a little embarrassing, but because the logic behind coding more than that gets way complex... haha
klinkdawg24 said:
Well, a little embarrassing, but because the logic behind coding more than that gets way complex... haha
Click to expand...
Click to collapse
Don't worry! But I hope you'll add multiaccount. There're a lot of people that love it
Anyway it's a good app with a perfect design. My sincerelly congratulations!
Enviado desde mi Nexus 4 mediante Tapatalk
Will love to try it, I paid for falcon and then it got free
Hoping for xda version
Maybe I'm just stupid.. How do you pull up replies to others tweets? Beautiful app btw... Love it...
wow this app looks beautiful, would love to try it, unfortunately, i dont have a credit card and can't purchase from google play. Will there be a free or xda version coming soon? if not is there any way for me to try this out? signed up for the beta as well
I got the app a couple of hours ago and it's amazing.
Just a few things..
Where did the Talon Pull notifications go when they are received? I have to manually to update the timeline anyway.
You have to pull down for too long in order to update. You should adjust it
You should definitely implement threaded DMs, that would be pretty cool
Great app btw,
donwhall70 said:
Maybe I'm just stupid.. How do you pull up replies to others tweets? Beautiful app btw... Love it...
Click to expand...
Click to collapse
right now, you can only look backwards at tweets, looking forward will come when i figure it out haha
alkspo said:
wow this app looks beautiful, would love to try it, unfortunately, i dont have a credit card and can't purchase from google play. Will there be a free or xda version coming soon? if not is there any way for me to try this out? signed up for the beta as well
Click to expand...
Click to collapse
No, because of the token limit, this app is going to be paid, I thought about an XDA version with different tokens, but that would just go against Twitters rules still
Kage0x said:
I got the app a couple of hours ago and it's amazing.
Just a few things..
Where did the Talon Pull notifications go when they are received? I have to manually to update the timeline anyway.
You have to pull down for too long in order to update. You should adjust it
You should definitely implement threaded DMs, that would be pretty cool
Great app btw,
Click to expand...
Click to collapse
1.) They go to the interactions drawer on the right, make sure you are on the newest version and it will work better (1.01)
2.) i changed it for the version im releasing now
3.) yeah the dm's have a lot of work i know!
Version 1.05
(up in ~2 hours)
Well, day one is coming to a close and i have added some nice stuff for all of you
There was an update earlier that solved some issues with the Talon Pull service not working and tweets being saved twice in some places. That was version 1.01.
Changelog for 1.05:
Correctly mute retweets
- Higher quality images on timeline
- Dismiss all on interactions drawer
- In-app browser is now optional
- Lowered swipe length for Pull to Refresh
- Option to display both screenname and name on timeline tweets
- Open app from clicking icon on widget
- Finished German translation
- Fixed contact images on layout change
- Attempted fixes for Play Store crash reports
I hopefully got the force closes that were reported today taken care of. Although there weren't many, which makes me happy
Let me know how this version works for all of you!
hi mate
the last update is wonderful
it fix almost every complain ppl have.... BUT.....
PLEASE and i repeat PLEASE don't use the same way of plume to manage DM
the DM must be in threaded conversations, with the ability to delete entire threads, just like a normal "sms" application does, and just like tweetbot does.
please fix the dm section and this could be the real deal for android users.
faremoney said:
hi mate
the last update is wonderful
it fix almost every complain ppl have.... BUT.....
PLEASE and i repeat PLEASE don't use the same way of plume to manage DM
the DM must be in threaded conversations, with the ability to delete entire threads, just like a normal "sms" application does, and just like tweetbot does.
please fix the dm section and this could be the real deal for android users.
Click to expand...
Click to collapse
DMs will get a big rewrite, but I have a few other things I need to do first
klinkdawg24 said:
DMs will get a big rewrite, but I have a few other things I need to do first
Click to expand...
Click to collapse
Very nice app. I only have two "issues" Local Trends is displaying trendings from another country. The same happened to me with Falcon Pro so, I guess you both use same location service. It would be nice to have an option to select trends manually for people who is living in another country and wanna know what is happenning in their "home"
The other issue I found is that I think data loading is faster in other Twitter clients especially with timeline refresh
OK, this gets better and better.
The pull to refresh is better than before, but it still needs some improvement. Take a look at how the one from the gmail app behaves. That one is perfect. But this is just a minor issue, so it's not a big deal
Regarding the DM issue, could you at least change the order in which they are displayed, or at least give us the opportunity to do so? It's kinda weird to have the old ones first. But it really depends on long will it take to rewrite the whole thing, if you're going to do it
Also, I really think mentions notifications from the Talon Pull should go directly into the mentions tab instead of the additional drawer, but maybe that's just me
awesome. perhaps the only competitor falсon. you can do that display images if given a direct link to it? (everywhere)
view who retweet/favorite. display real-time, I mean like 20:14, but not 14 minutes ago. thx, man.