Een Twitter-client voor Android maken installatie en overzicht

Vanzelfsprekend gebruiken veel mensen mobiele apparaten om verbinding te maken met sociale-mediaservices. In deze reeks tutorials zullen we een eenvoudige Twitter-client voor het Android-platform maken. We zullen de Twitter4J-bibliotheek gebruiken om verbinding te maken met Twitter. De app geeft de starttijdlijn van de gebruiker weer, verzendt tweets, retweet en beantwoordt tweets.

Hier is een voorbeeld van het eindresultaat:




Ook verkrijgbaar in deze serie:

  1. Een Twitter-client voor Android maken: installatie en overzicht
  2. Een Twitter-client voor Android maken: de interface bouwen
  3. Een Twitter-client voor Android maken: een tijdlijndatabase maken
  4. Een Twitter-client voor Android maken: Updates ophalen met een service
  5. Een Twitter-client voor Android maken: tweeten, retweeten en antwoorden

Stap 1: Begrijpen hoe de app zal werken

Voordat we beginnen met het bouwen van de app, laten we even stilstaan ​​bij wat we proberen te bereiken en hoe we het gaan doen! De app omvat een verscheidenheid aan technieken en Java / Android-utilities, waaronder een SQLite-database, een service, een broadcast-ontvanger, een adapter en de Twitter4J-methoden zelf.

Wat de app zal doen

Wanneer de gebruiker de toepassing voor de eerste keer uitvoert, wordt hem een ​​prompt weergegeven waarin hem wordt gevraagd in te loggen bij Twitter om de app te autoriseren zijn account te gebruiken. Op dit punt zullen ze worden omgeleid naar een pagina in de webbrowser, waar Twitter zal zorgen dat ze worden ingelogd en de app autoriseren voor toegang. De gebruiker wordt vervolgens teruggeleid naar de app, waarbij Twitter de benodigde autorisatiegegevens retourneert om de verschillende functies voor tweeten en tijdlijn te implementeren..

Nadat de gebruiker de app toestemming heeft gegeven om hun account te gebruiken en daarna de app-runs uit te voeren, is het eerste dat ze zullen zien hun eigen Twitter-tijdlijn (zoals in de afbeelding hierboven). De starttijdlijn geeft aanvankelijk de meest recente tweets weer, met nieuwere tweets toegevoegd naarmate de tijd verstrijkt. Terwijl de gebruiker interactie heeft met de app, haalt een Service periodiek nieuwe tweets op en vernieuwt de code het tijdlijnscherm overeenkomstig.

Binnen elke tweet in de tijdlijn kan de gebruiker de Twitter-gebruikersnaam van het betreffende account zien, de tijd dat de tweet ten opzichte van nu is verzonden, de getwitterde tekst en de afbeelding van het gebruikersprofielpictogram. Als de tweet-tekst bestaat uit URL's, behandelt de app deze automatisch als webkoppelingen, zodat de gebruiker erop kan klikken om toegang te krijgen tot de gekoppelde bronnen. De gebruiker kan ook retweet en op elke tweet in de tijdlijn antwoorden.

Om een ​​tweet te verzenden, drukt de gebruiker op de knop Tweet boven aan het scherm, waarmee hij naar het scherm Tweetactiviteit gaat. Hier kunnen ze hun tweet invoeren en verzenden. Als de gebruiker ervoor kiest om een ​​tweet in zijn tijdlijn te beantwoorden, worden deze ook naar het tweetscherm geleid, waarbij de gebruikersnaam automatisch wordt ingevuld in het tekstveld van de tweet en de onderliggende code de vereiste informatie opslaat voor het beantwoorden van een bepaalde tweet.

Deze app heeft een heel specifieke opdracht, maar als je klaar bent met de ontwikkeling, wil je hem natuurlijk graag verbeteren. Aan het einde van de laatste zelfstudie in de serie zullen we enkele suggesties voor verdere ontwikkeling doornemen, zoals een activiteit voor het bekijken van Twitter-gebruikersprofielen. De app zoals we die hier zullen ontwikkelen, zal de gebruiker toelaten om door te klikken naar het profiel van een Twitter-gebruiker in de webbrowser door zijn gebruikersnaam te selecteren in de tijdlijn, die linken naar de Twitter-website om de gebruiker toegang te geven tot functies die we niet hebben geboden in de app zelf.

Hoe de app dit allemaal zal doen

De Twitter-client-app heeft twee hoofdactiviteiten: één voor de tijdlijn en één voor tweeten. Wanneer de app wordt opgestart, wordt een SQLite-database gemaakt om de thuistijdlijn tweets op te slaan, waarbij een adapter de databaserijrijen toewijst aan weergaven in de gebruikersinterface van de toepassing. De app start ook een service die moet worden uitgevoerd terwijl de gebruiker ermee communiceert, waarbij de tijdlijn wordt bijgewerkt met nieuwe tweets wanneer deze beschikbaar zijn. Hiervoor verzendt en ontvangt de app broadcasts wanneer er nieuwe updates zijn opgehaald, zodat deze de zichtbare tweets kunnen vernieuwen.

De applicatie bevat slechts enkele klassen, maar deze klassen zijn relatief complex. We zullen ook de Twitter4J-bibliotheek moeten importeren, verschillende bronbestanden moeten maken en ernaar moeten verwijzen en het Manifest van het project moeten kunnen bewerken. Als dit veel lijkt om mee te maken, maak je geen zorgen! We zullen doorwerken en elke stap in detail uitleggen. Laten we beginnen.


Stap 2: registreer de app met Twitter

Ga naar de Twitter Developers-website en log in met uw eigen Twitter-inloggegevens om uw app te registreren. Maak een nieuwe app binnen de interface die u daar ziet. Voer een naam in voor uw app. Voor deze serie tutorials krijgt de app de naam TwitNice, maar je moet je eigen naam kiezen. Voer een beschrijving en een website-URL in, die eenvoudigweg uw eigen startpagina kan zijn. U kunt hetzelfde adres (of eigenlijk elk adres dat u bezit) als de callback-URL invoeren; we hebben het niet nodig voor de app, maar je moet iets invoeren om de registratie te voltooien.


Zodra je je app hebt aangemaakt in de Twitter Developer-interface, zou je de details ervan moeten kunnen zien. Blader naar het tabblad Instellingen voor de app en scrol omlaag naar het gedeelte Toepassingstype. Selecteer Lezen en schrijven of Lezen, schrijven en toegang krijgen tot directe berichten. Voor deze serie hebben we geen toegang tot directe berichten, maar wellicht wilt u uw app uitbreiden om dit in de toekomst te doen. U kunt deze instellingen op elk gewenst moment wijzigen. Klik op de knop onder aan de pagina om uw applicatie-instellingen bij te werken.


Selecteer het tabblad Details voor uw Twitter-applicatie. Dit gebied bevat details die u moet noteren. Kopieer in het gedeelte OAuth-instellingen de waarden voor Consumer Key en Consumer Secret naar een bestand op uw computer voor toekomstig gebruik. Deze moeten beiden privé worden gehouden. We gebruiken de OAuth-sleutel en het geheim binnen de applicatiecode om Twitter-functies uit te voeren.


Deze instellingen zijn bedoeld voor het verifiëren van uw ontwikkelaarstoegang voor deze toepassing. Later zullen we ook moeten implementeren om de gebruiker te verifiëren en toestemming te krijgen voor interactie met hun tweets.


Stap 3: maak een nieuw project in Eclipse

Tijd om uw project te maken. Kies in Eclipse Bestand, Nieuw, Project en vervolgens Android Project. Voer je projectnaam in, selecteer Volgende en kies API level 8 om er zeker van te zijn dat de code in deze tutorialreeks geen problemen veroorzaakt. Klik op Volgende en voer uw pakketnaam in en vervolgens Voltooien om uw nieuwe project te maken.



Stap 4: Importeer de Twitter4J-bronnen

We zullen Twitter4J gebruiken om interactie met Twitter in de app aan te kunnen. Dit houdt in dat we de bibliotheek importeren zodat we erin gedefinieerde objecten kunnen maken en vervolgens die objecten gebruiken om de methoden te bellen die nodig zijn om Twitter te benaderen. Bezoek de Twitter4J-site en download de meest recente stabiele versie van de bibliotheek. Zodra je het hebt gedownload, pak je het gecomprimeerde bestand uit naar een gewenste locatie in het bestandssysteem op je computer.

Nu moeten we de Twitter4J-bibliotheek toevoegen aan het buildpad van uw app. Hiertoe selecteert u uw project in de Eclipse Package Explorer en vervolgens het menu Projectwerkbalk en vervolgens Eigenschappen. Het venster Eigenschappen zou moeten openen. Selecteer Java-buildpad en vervolgens het tabblad Bibliotheken.

Als u de Twitter4J-bibliotheek aan uw project wilt toevoegen, kiest u Externe JAR's toevoegen en bladert u naar de locatie van het JAR-kernbestand voor Twitter4J, dat op dit moment de naam "twitter4j-core-android-2.2.5.jar" heeft en wordt opgeslagen in de map "lib" van de map die u hebt uitgepakt. Voor nieuwere versies van de bibliotheek moet u misschien een iets ander JAR-bestand zoeken, maar het moet ongeveer dezelfde naam hebben. Zodra u het JAR-bestand hebt toegevoegd, ziet u het op het tabblad Bibliotheken.


Klik op OK om het venster Eigenschappen te sluiten. In de toepassingsmap ziet u nu het JAR-bestand in het gedeelte Bibliotheken waarnaar wordt verwezen.


Uw applicatie heeft nu de mogelijkheid om te verwijzen naar en gebruik te maken van de Twitter4J-functionaliteit. Als je later besluit dat je mediafuncties wilt toevoegen, zoals het uploaden van afbeeldingen naar je Twitter-app, moet je ook het Twitter4J media JAR-bestand toevoegen, dat zich op dezelfde locatie bevindt als de core JAR.


Stap 5: bewerk het projectmanifest

Om de voorbereiding van de app af te ronden, kunnen we het Manifest van het project bewerken. Open het Manifest-bestand van de Eclipse Package Explorer om het in de editor te zien. Schakel over naar het tabblad AndroidManifest.xml om de code rechtstreeks te bewerken.


We moeten een paar toevoegingen en wijzigingen aanbrengen aan het manifest om ons voor te bereiden op de app. Voeg eerst het volgende permissie-element toe waar je maar wilt, zolang het zich buiten alle andere elementen bevindt, behalve het root-manifest-element zelf:

 

Hierdoor heeft de app toegang tot internetbronnen. Wijzig in het toepassingselement de hoofdactiviteit als volgt:

            

Wijzig binnen de openingstag Activiteitstag het attribuut naam zodat het overeenkomt met de naam van de hoofdactiviteitsklasse die u hebt gekozen bij het maken van uw project, of een naam naar keuze als u niet via Eclipse automatisch uw hoofdactiviteit hebt gegenereerd.

De Intent Filter-elementen geven aan dat uw hoofdactiviteit moet worden gestart wanneer de app wordt opgestart en dat deze de webbrowser kan openen, zodat we de gebruiker kunnen aanmelden bij Twitter voor autorisatie.

Let op het gegevenselement onder aan deze code. Dit is ook voor het verifiëren van de app. U kunt de waarde van het schema-attribuut wijzigen als u dat wilt, maar er wordt naar verwezen in de toepassingscode, dus houd hier rekening mee. Het maakt niet echt uit wat je hier in zet, zolang het overeenkomt met de Java-code die we later zullen schrijven.

Voeg ten slotte nog twee elementen toe aan uw manifest, binnen het toepassingselement maar na de afsluitende tag voor het bovenstaande activiteitselement:

  

Het activiteitselement is voor het tweede scherm in de app, dat is voor het verzenden van tweets. We noemen de Activiteitsklasse "NiceTweet". Als je de klas een andere naam wilt geven, kun je dit gerust doen. Onthoud dat de klassenaam die je kiest, dit element moet matchen met het manifest en verwijzingen op verschillende punten in de Java-code van de toepassing. Het tweede element is voor de service die we zullen implementeren om Twitter-updates te halen. Nogmaals, voel je vrij om de naam van de klas te veranderen als je dat wilt.


Tot de volgende keer…

We hebben nu de basis gelegd voor onze Twitter-client. In de volgende zelfstudie zullen we ervoor zorgen dat gebruikers zich aanmelden bij Twitter om de app toestemming te geven voor toegang tot hun accounts. Wanneer de Twitter-pagina de gebruiker naar de app retourneert, halen we de authenticatiegegevens op en bewaren deze in de toepassingsvoorkeuren. Daarna kan de app de tijdlijn van de gebruiker ophalen en weergeven, evenals tweets verzenden vanuit zijn account.

In deel 2 van deze serie zullen we ook gebruikersinterface-elementen voor de app maken, inclusief lay-outs en bruikbare bronnen. In delen 3, 4 en 5 zullen we de database, adapter en service voor de app implementeren, en de gebruiker toestaan ​​te tweeten, retweeten en op tweets te antwoorden..