Ethical Dilemmas of Technology: Privacy

By Xinye Ji

“Arguing that you don’t care about the right to privacy because you have nothing to hide is no different than saying you don’t care about free speech because you have nothing to say.”

-Edward Snowden

It’s difficult to overstate how much privacy we give up to have access to services such as Facebook, Twitter, Instagram, Google, or even Amazon. With every click, whim, or action, we tell the services we interact with a little about ourselves bit by bit. As time goes on a clearer profile of each person is created, and interesting conclusions can be drawn from these profiles.

The movie Yes Man satirizes the worst case scenario when Carl, Jim Carrey’s character, is arrested on charges of potential terrorism due taking flying lessons, studying Korean, approving a loan to a fertilizer company, meeting an Iranian woman, and buying plane tickets at the last minute. While the situation was comically exaggerated, the film brings up an interesting social commentary of the state of our privacy. We run the risk of pushing ourselves further into a surveillance state.

Speculatively, one could argue that applying this data aggregation comes from a place of good will. In fact, terrorism prevention is a frequent argument that the US government makes to continue the activities of the NSA. Aside from crime prevention, there are many different applications to utilize aggregate data. For example, aggregated data now informs us about real-time traffic. Our aggregated profiles can tell us about possible car repair. Are these conveniences worth giving away your information? What about if Target could tell you if you were possibly pregnant based off of your purchases? Or what if Facebook could tell if someone was about to commit suicide? Or what if Microsoft could tell you that you have pancreatic cancer a month before you knew it yourself? Are these advancements in technology worth the loss of our privacy?

This blog post might seem a bit eclectic and contrarian to itself. I don’t intend to draw any conclusions of this topic as we could go on forever about it. However, I do believe this ethical dilemma is something that we, as a society, have to decide on in the near future. For the time being, however, I hope that the average citizen considers and understand how to protect one’s liberties in the digital age.

Kotlin: A Learning Process

By Xinye Ji

For those who aren’t in Android development circles, Kotlin has been on the rise since its beta release in 2011. At Google I/O 2017, Kotlin was announced to be officially support and adaptation of the language has soared in the last year. I recently decided pick up the language and hope to implement the upcoming features in our products with Kotlin.

Obviously, switching to a new language always has its hurdles. Syntactically, things always take a while before you get into a groove, but that’s always a part of the expected learning curve.

One of the main benefits of Kotlin over Java is that Kotlin seems to value making code a little more condensed. For developers who aren’t particularly fond of Java’s particularly verbose nature, I think this is a welcome change. There aren’t any massive paradigm shifts, but many smaller changes add up to a more streamlined development experience.

But aside from these mostly aesthetic changes, Kotlin takes many design cues from Joshua Bloch’s Effective Java. For me, this had some mixed results. Some of my lazier programming practices cropped up, resulting in me rethinking and revisiting my thought process when implementing some features in my sandbox app.

Thankfully because Kotlin is developed by the same company that produces Android Studio, a lot of these things are pointed out by the IDE itself. For example, my biggest lazy habit was not considering mutability. In Kotlin, one has to declare their variables as mutable or immutable with var or val respectively. If Android Studio, (or rather Intellij) detects that something you have declared is not changed after you’ve created it, it’ll flag that line and suggest you change the it to immutable. If I had to encapsulate a lot of Kotlin’s language design decisions, I’d say that it almost forces you to make better architectural decisions by employing an opt-out mentality, rather than an opt-in mentality.

Overall, I think this makes the learning curve more difficult, as it can produce unexpected behaviors if you haven’t read all the documentation surrounding certain features in Kotlin. But in the long run, I think this will lead to higher levels of productivity.

On a more personal note, I don’t think I have any particular preference towards Java or Kotlin yet. However, I’ve been working with mostly Java for the past few years, so there are still many things I’m still learning about Kotlin as I play around with it more. So one should consider that my familiarity with both languages are definitely not equal. In general, I’d say that (at the very least) trying Kotlin is a worthwhile endeavor for any native Android developer.

Android App Permissions

By Xinye Ji


Privacy on the internet has always been tricky. For some people, privacy is of the utmost important, they refrain from using any sort of online service that can aggregate information. (Like Facebook, Twitter, etc.)

On the other hand, many are oblivious to the issue, unaware that many phone apps ask for very intrusive permissions that most likely compromises your privacy. So in this blog post, I’ll be going over the Android permissions and what to think when apps ask to do certain things.

So in Android, there are nine major permission groups that developers can request when you’re running your app:

  1. Calendar
  2. Camera
  3. Contacts
  4. Location
  5. Microphone
  6. Phone (calls)
  7. Sensors
  8. SMS
  9. Storage


This permission is pretty self-explanatory. Applications that need to create meetings, calls, appointments or anything else that you’d like to plan need this permission to write to your phone’s calendar. (like a calendar app, go figure)

Aside from calendar apps, I’m not entirely sure other apps would need this permission. A red flag would definitely go up for me in that scenario.


This is also a straightforward permission. If your app needs to use a camera, it needs to ask for the permission. A red flag would be if you can’t think of a scenario where the app needs to use your camera.


Typically this is with paired with the phone (call) permission. I would personally be very weary about this permission, as many services, such as Facebook, have a tendency to upload your contacts to the cloud when you enable this permission.


I am also pretty weary about this permission. With the exception of apps like Google Maps, there are very few apps that I would trust with my location.


I think this is similar to the camera permission. Use some critical thinking. If there isn’t an obvious reason why the app would need to use your microphone, think twice about allowing the permission.

Phone (Calls):

Apps rarely need this permission, but if you enable it, it could allow apps to randomly dial other people! Make sure that you trust the apps that ask for this!


Now this permission is a bit tricky, as it varies from phone to phone. Basically this permission allows developers to access motion and environmental sensors. For example, this app uses the accelerometer to see if the phone is in free fall. Typically this permission is less sinister when it comes to protecting your personal information however, so I’m not sure what red flags could be thrown in this case.


Similar to the phone call permission, this is a texting permission. If you’re not sure why the app would need to send text, it’s better to not allow it.


This is probably one of the hardest permissions to gauge. Any time you need to save a photo or a file of some sort, apps need to ask for this permission. However, this could also allow apps to snoop in your system files and do other questionable things with your information! Unfortunately, many many apps require this permission, so it is quite hard to tell who to trust. My advice would be to make sure that the companies behind these apps are trustworthy.

A Developer’s Responsibility

One of the odd things about software development and engineering is the discussion of ethics in the community. From the perspective of a developer, I would hope that users would give me all kinds of permissions to use on their phone so I can bring great features that hopefully improve their everyday lives. However, it is very easy to cross a line that people generally are not comfortable with for the sake of new technology. I believe that it is a developer’s responsibility to consider these ethical dilemmas.

However, the phone app industry is relatively new. These boundaries and ethics will most definitely be tested and defined in the future. In the meantime, I highly recommend everyone to consider their own privacy until then.

What to expect from Android N?

By Xinye Ji

For those unaware, the Android N(utella?) Preview build has been released from Google. There are a swath of features that have been released. What does that mean for developers however? Here are some of the newer features that will affect us.

Jack and Jill and Java 8?

Jack (Java Android Compiler Kit) and Jill (Jack Intermediate Library Linker) are the new parts to the Android toolchain. These tools allow developers to fully utilize Java 8 in their apps! (Goodbye Oracle lawsuits) Some awesome features of Java 8 include lambda expressions and parallel operations!


The notification drawer is a lot more sophisticated this time around. Google has released a new API for developers to utilize. The RemoteInput API (initially made for Android Wear) is now available in general. Additionally, you can now combine multiple notifications for the same app. There are some other minor features, but these details all combined make for a great revamp of the notification system

Screen Shot 2016-03-21 at 10.12.18 AM

Without Lambda Expression

Same code with Lambda Expression

Project Svelte

Android devices are pretty randomly afflicted by RAM allocation issues. While this isn’t something that developers necessarily have to do anything for, Project Svelte attempts to minimize RAM used by optimizing the way apps run in background. Hopefully this will improve performance as well as extend battery life!
These are just some of the “behind the scenes” things that stood out to me thus far for the developer preview. It seems like Android N is more of an incremental step rather than a  The coming months leading into Google I/O will be quite exciting.

Google I/O 2015 – A Developer’s Perspective

By Xinye Ji

Google I/O was a rather anti-climactic one in some ways. People were expecting a whole new refresh like Lollipop was last year. A lot of people were expecting a new Nexus 5. (Which may or may not have been previewed when introducing the new USB Type C connector…) Instead, Google focused on support, stability and efficiency.

So, in the eyes of many, maybe Google I/O wasn’t so exciting as it was more of a ‘tock’ instead of a ‘tick’ kind of update. However, for both Google and Android developers, this update lets us breathe a sigh of relief. New letter (like L or, in this case, M)  versions typically introduces more fragmentation issues that Android has been so infamously known for. This time around, while we see some features that are not supported in older versions of Android (such as the revamp of app permissions), the support and backwards compatibility of said features won’t completely break the app one hundred percent.

The Android M preview also released with its developer counterpart Android Studio 1.3 along with the 1.3 gradle plugin.

The Good:

Android NDK

For those of you unaware, the Android NDK allows developers to work natively in C or C++. I’m personally quite excited about this, as this allows a much wider spectrum of developers to pick up Android development. I’m sure we’ll see some amazing libraries come out in the ensuing months, perhaps more hardware and low level control.

The Bad:

Additionally, during the “What’s new in Android Testing?” presentation. Many, many features were slated for “in the next few weeks.” It’s unfortunate, but it seems some things in the product were not ready in time for Google I/O.

The Ugly:

This build is… buggy to say the least. The initial release of the 1.3 Canary build had some expected errors; like having trouble switching to the M preview build, and certain gradle issues that came with that. But it also had other issues, such as telling you that your overridden classes never implemented the super class, when it clearly did.

The issue has since been patched, and I understand this is a canary (very early beta) build, but come on guys…!!

One thing is very clear for this year’s Google I/O, however.

                           A Focus on Just Making Better Apps.


One big thing is the Captures feature on Android Studio. This allows you to get the CPU metrics for your connected device. I recall this use to be a giant cluster of irrelevant data. Now they have more intuitive UI and a very well detailed metrics that will help you search CPU hangups and memory leaks.

Theme Editor:

If any of you have done Android Development, one huge pain was setting up themes. This time around, there is a new theme and layout editor. The theme editor has some amazing items. It helps you integrate material design to your app, and it removes a lot of the boilerplate you need to generate.

Additionally, we have a revamped layout editor. This editor definitely seems new and improved. The demo at Google I/O didn’t generate a bunch of gibberish code, and the visual UI designer has piqued my interest. In fact, I suspect many developers may start using that rather than blindly typing into the XML file and hoping the UI looked as intended.

Sadly at the time of posting, this tool is not yet available on the preview.

Android Design Library:

Since I learned about material design, I’ve always wanted proper support for material design. At Google I/O this year, the Android Design Library was released, which has been basically everything I wanted from Google as far as implementing Material Design, as well as supporting Material all the way back to Froyo (Android 2.1).


There was a large chunk of support for testing during Google I/O. Including testing UI, proper unit testing, and automation of said tests. A lot of the testing process is now more tightly integrated with Android Studio. And I, for one, am very excited to check these out in my own geeky way.

The one major thing that all these things have in common is that they are incredibly mundane to the end user, but incredibly exciting to most developers. The updates to these tools will help us improve our development process to make better, more consistent, more reliable, and more powerful apps.

Google IO 2015

Google I/O 2015


By Ganpy

I may not be technically qualified to analyze all the new announcements made at this week’s Google IO purely from a programmer/developer’s point of view, but I find myself qualified enough to comment on the overall outcome of the many things that came out of Moscone West, generally, as someone who is closely associated with the industry. 

The beauty of Google IO is that it is a little more grounded and humble compared to let’s say Apple WWDC. Not that I have a problem with the latter approach. It’s after all a dog and pony marketing event & you got to be in your A game. Google just likes to adopt a different strategy. With the Google umbrella casting a much larger shadow on a typical global citizen’s daily digital life than that of Apple’s, it is simply impressive that this strategy works for them, every year.

To me, what clearly stood out was how much Android centric Google IO this year was. This also highlighted the significance of the times we live in – Mobile, Internet of Things (IoT) and all new innovations around them.


Well. Google acknowledged that it is going to focus on ‘usability’ with Android M. It’s not that Android is not usable in its current form. But the general focus with L was on design. So with M, Google may just be polishing off the usability issues that came with L. Again I am not a programmer, so wouldn’t know how to technically break down the improvements. For example, the ability to change permissions on the fly in an app is such a leap. Improvements like these will put Android always ahead of iOS when it comes to features and what one can do with them as a developer.

Android Watch

No one saw how quickly or how powerfully Apple Watch will dominate this wearables market space. With so many different Android based watches to choose from as opposed to a single device in the iOS world, Android wearables have sort of turned out to be secondary choices for many users who are looking for smartwatches. With some really new cool features that were announced this year, it is clear that Google will continue to show Apple how to get it right in smartwatches and Apple wouldn’t mind playing the catch-up game as long as they can keep their market share this high.

Brillo and Weave

Internet of Things – Just a few months ago, this was such a complicated phrase to explain. Now, it seems like everyone talks about it. What a rapidly changing time we live in!! We are definitely living through a phase in technological development where we are inventing more solutions to solve problems created by our previous technological innovations, than actually inventing some completely new solutions. Brillo and Weave are good examples of this. Brillo is sort of like Android lite, an OS to be used by all devices that are connected to your life’s IoT while Weave is the new protocol which the devices will have to follow to communicate with one another. I know that is putting it simply, but that’s exactly how they pitched it. Let’s see how rapidly they take over our lives. I am not going gaga over them yet.

Google Photos

Well. In some ways, all Google fans could slam my statement – But I for one feel, this is one of the few areas where Google is playing catch up with Apple. Nothing that they announced as new features in Google Photos made me go “wow”, the lifelong free storage for Google Photos notwithstanding. I will be very curious to see how many people really feel that the free storage is an incentive to switch to Google Photos. This may be another area where Google treads the dangerous privacy issue in a ‘greyish’ sort of manner, if you know what I mean.

Google Now

I will keep it short. Google Now is really how Google is trying to make all your frequently used apps redundant. As conflicting as it may be, it is very impressive nevertheless. Google Now may be the only thing you need soon on your Smartphones. 

Cloud Test lab

Another eyeopening announcement. We as a team, haven’t fully discussed how this could change our testing scenarios. It is a well known fact that there is one thing that has been haunting the Android development labs all around the world and that is the fragmentation issue. With something like this, Google could potentially eliminate that being a factor to consider while developing your next Android app. We have been seeing spurts of some third party services offerings along these lines and we were interested in looking at those for our internal use. But if Google can provide something like this which has all its blessings, then we don’t have to look too far for this service in future.


Expeditions was the biggest breakthrough announcement yesterday (for me). It may be hard for to express why in a very eloquent way, but the classroom expeditions demo awakened the student in me.

The GoPro rig combined with the kind of VR editing options you have, which in combination with youtube being a new platform to actually play/watch VR videos, using a ridiculously simple device like a cardboard…….I think we are sitting on the next major technological innovation.

GoPro rig may not be for everyone as I expect the cost to run into a few thousand dollars, but the day is not far off when all of us can sit in the luxury of our couches and perhaps discuss the rate at which climate change is happening all around us, as we watch a live VR capture of another big ice shelf breaking away from the coast of Antarctica. 

And that, dear readers, would be the ironical and the bittersweet future we all can look forward to!

Your Favorite Phone now meets Your Favorite Car

By Phillip Garton

The average American spends 162 minutes on their mobile device a day and 101 minutes in his/her car. The likelihood of these times overlapping is ever increasing as mobile devices become more and more integrated with our lives. The need to stay in constant contact, get directions or find the nearest place to get a burger becomes an everyday need.

It is no surprise that the most prevalent phone operating systems want to make life easier by offering features in your car, but it is also no surprise that car manufacturers want to bring these features direct to you from your dealer. Both Apple and Android announced this year that they will be offering in car systems straight from the OEMs for integration to their devices.

Apple CarPlay

Apple has introduced CarPlay, a feature rich in dash information system for the OEM and Aftermarket that integrates with your iPhone 5/5C/5S/6/6 Plus. CarPlay extends many of the functions that you most commonly use while in your car to the cars in dash head unit making it easier to keep your focus on the road ahead.

CarPlay attempts to keep the road your main focus with putting controls within reach. Siri handles all your voice commands, allowing you to answer calls, send messages, ask for directions or request your favorite song. If you are more of a button pusher, CarPlay also allows for all of these controls to be accessed through on screen menus or operation through your in cars specific controls.

Apple knows that while driving you have enough to worry about so CarPlay brings you everything you need without having to search for it. Apple Maps is there to give you direction, traffic to make sure you get to your destination on time. Calling is there to make sure you never miss making that important call or taking one. In car Messaging is there to help you response to those texts or emails that just can’t wait and with Siri you never have to take your eyes off the road to respond. What would a car be without your favorite tunes playing over the radio, iTunes and iTunes Radio and there to make sure you never have to search the radio to find the music you want when you want it.

Apple also knows that your mobile device is personal and it’s not just used for placing calls and getting directions so CarPlay currently supports some of the popular iPhone apps such as Spotify, iHeartRadio, Podcast, Beats Music, MLB at bat, and CBS Radio to name a few with more to come.

CarPlay will be available in the aftermarket from Alpine and Pioneer, in addition some OEMs that have already signed up to offer this right from your dealer such as Ford, GM, Chrysler, Toyota and BMW to name a few. You will soon be able to take full advantage of CarPlay in your car old or new.

Android Auto

Android has introduced Android Auto an in dash information system coming for OEMs that integrates with your Android device running 4.2 or higher. Android Auto extends most of your mobile devices functions to the in dash screen keeping your hands on the wheel and eyes on the road.

Android Auto keeps you focused using voice and on screen in dash controls. Using hot words like “Hey Google” all your voice commands, such as answering calls, send messages, asking for directions or requesting your favorite song can be done. Similarly you can access all these functions through simple and quick interactions on the in dash display.

Android wants your car to become a natural extension of your phone, so Andorid Auto brings you everything you need and nothing you don’t. Google Maps is there to give you the reach driving and turn by turn navigation with lane guidance and traffic information you come to expect. Calling and Messaging are there too, so you never miss the contact when you need to make it most. Want music? Just ask Google and it will be served up to you right through your in car audio.

Android just like Apple knows that your mobile device is personal and your favorite apps can’t be ignored so Android Auto currently supports some of the best Android apps such as Spotify, iHeartRadio, Pocketcast, MLB at bat, and Pandora, to name a few, with more to come.

Android will be available for OEMs with no word on Aftermarket as of yet, but some OEMs that have already signed up to offer this right from your dealer such as Ford, GM, Chrysler, Volkswagen, Honda and Bentley, to name a few.

Your Choice Your Car!

The choice is yours! In rare form Apple and Android are offering very comparable products, the screens and interface are close in look and feel. The apps and functions of both products are almost the same and even the car manufacturers overlap between the two products with the only edge going to Apple for supporting the Aftermarket but with Google’s open sourced approach to software I would think this is only a matter of time before we see an Android based head unit on the market.

The only questions that really remains is how quickly will we see cars equipped with this great technology and which will you choose? Soon your choices will not only include what color paint or if you want leather, but what mobile device you use.


Android Wear – Welcome to the Future

By Xinye Ji

Whether or not you’ve been following Android Wear, I think we can all agree that the integration of technology into our everyday lives is becoming more and more apparent. However, these changes are small, gradual, not sudden. People slowly make minor compromises to incorporate technology into their everyday lives. For example, we hear less and less about people clinging on to their flip phones as we transition through this decade, and more and more about luddites taking their first wobbly steps. It’s strange to think that a decade prior to the founding of Android in 2003, cell phones in general weren’t nearly as widespread as smartphones are today.

But like I said, the change is gradual, and Android Wear is a part of that change.

Diffusion of Innovation: Accepting Change

Everett Rogers wrote a book called Diffusion of Innovation which outlines the pattern at which an innovation reaches critical mass. I’m not going to go into the specifics of what causes an innovation to be adopted by the general public, as that is not my area of expertise. However, there are typically five categories people fall under when taking new technology assimilates into society: Innovators (2.5% of users), Early adopters (13.5% of users), Early Majority (34% of users), Late Majority (34% of users), and Laggards (16% of users).



As it stands, people using Android Wear currently would fall under the early adopter category.

Where it’s come from: Pebble the Predecessor

On April 11th, 2012, Pebble Technology started a Kickstarter campaign to create Pebble, a smartwatch that interacts with your phone. The kickstarter blew past it’s $100,000 goal by over 10000% on the ending date of May 18th with a grand total of $10,266,844.

I’d argue that this kickstarter is what piqued the interest of Google on Android and the respective hardware companies that came with it.

Where it stands now: Early Adopters

On March 18th 2014, Google announced Android Wear. Later in June, the Samsung Gear Live and LG G Watch were launched at Google I/O. Right now, we are seeing innovators push new products to the early adopters. This is a pivotal time for wearable technology. Many wonder if smartwatches will be able to do what Google Glass has not been able to, push us closer toward the future.

As of now, Android Wear does a handful of things. The concept is having phone information at a glance. A lot of this information is based off of cards from Google Now. Google Now, for the time being can keep track of a lot of your personal data. For example, it can keep track of stock prices, your emails, where you parked or the traffic from your commute from work to home, amongst many other things. Also because of it’s integration with Google Now, any commands you dictate with “OK Google” can also be applied to your watch. You can text a friend, send an email, find a contact, or even get navigation. Additionally, these smart watches can also display your notifications from third party applications on your phone.

Android Wear

Where it’s going

In all honesty, I believe that Android Wear’s success will be entirely up to the hands of the developers. Teams like us at Cogent IBS will be the ones who will make smartwatches truly a seamless experience. For example, the next iteration of DynaMeet could easily integrate Android Wear. We could set up a meeting without even pulling out our phones.

However, this technology could just as easily flop. Being at a stage where early adopters begin using your product could make or break it. Early adopters tend to have the greatest effect on new technologies. However, if Pebble’s kickstarter is any indicator for the demand of these devices, we’ll be welcoming the future much sooner than we think.