https://github.com/dsouzarc/iMessageAnalyzer
Analyzes a user's iMessage
https://github.com/dsouzarc/iMessageAnalyzer
Last synced: about 1 month ago
JSON representation
Analyzes a user's iMessage
- Host: GitHub
- URL: https://github.com/dsouzarc/iMessageAnalyzer
- Owner: dsouzarc
- Created: 2015-10-27T06:05:14.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2023-01-12T22:22:20.000Z (over 2 years ago)
- Last Synced: 2024-10-27T14:45:22.258Z (6 months ago)
- Language: Objective-C
- Size: 17.3 MB
- Stars: 348
- Watchers: 15
- Forks: 43
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- project-awesome - dsouzarc/iMessageAnalyzer - Analyzes a user's iMessage (Objective-C)
README
# Written by Ryan D'souza
## iMessage Analyzer - Mac App
### Analyzes a user's iMessages while providing cool functionality
Analyzes a user's iMessage database (chat.db*) to understand a user and their friends' messaging habits by graphing (and calculating statistics) on those characteristics.
Adds some unique functionality from Messages.app that provides a better experience, including a refined search for messages.
*chat.db, where a user's messages are stored, can be found in 2 ways:
1. Where Messages.app (Apple's official Messages.app - iMessage for Mac) stores its data
2. Where the iPhone's chat.db database is stored after a backup to the computer[Demo Video](https://www.facebook.com/dsouzarc/videos/10207832774234001/?permPage=1)
[Download .app](https://www.dropbox.com/sh/804msuitbz47gjm/AAAaR5QTdVv8pIRsO9NHZtI7a?dl=0)
###### Newest features
- Double messages: See who sends the most followup messages; defined as successive messages sent by the same person within 3 minutes to 8 hours of the last message send time
- Conversation starters: See who starts the most conversations; defined as who messages first after 8 hours of the last message in the conversation#### Current Features:
- Looks like iMessage
+ Contacts tableview on left side with contact name + profile picture
+ iMessages you sent are in blue on the right side of messages panel
- Normal text messages you send are in green
+ iMessages you received are in gray on the left side of messages panel
+ Shows each message's date/time and read receipts##### Unique from iMessage Features
- **Loads all of a user's messages** (as opposed to scrolling up forever to see the first few messages)
+ Still memory efficient and quick for large conversations
- Tested on conversations with > 26,000 messages
- Tested on total messages > 60,000
- Barely uses 110MB of RAM
- Minimal CPU usage- Searching for text shows conversations
+ With text that matches the conversation
+ With contact names/numbers/emails that match the text
+ Still (somehow) quicker than iMessage's search for conversations with text
+ Searched text is highlighted in yellow
+ Pressing enter moves to the next occurrence of that text- View **messages sent and received on a certain date** for a conversation
+ Calendar view pops up and a date can be chosen to view all messages with that conversant on
+ Pressing "Reset to All" shows all messages with person- Double clicking on contact in Contacts Tableview on the left shows
+ **Total number of messages you sent and received** in that conversation
+ Option to perform More Analysis- More Analysis
+ Shows the following for All Time or on a specific date
- **Words organized by frequency/occurrence** for each person
+ Uses a Heap Data Structure I wrote
- Total number of messages sent and received
- Total number of words sent and received
- Average word per message sent and received
- Date selected from calendar view on bottom left
- The actual messages sent and received
- The number of double messages for each conversant: defined as two successive messages sent by the same person between 3 minutes and 8 hours of the last message sent
- The number of times each conversant started a conversation: defined by who sends the first message at least 8 hours after the last message was sent/received- **Graphs and charts**
+ **Line graph** of messages with that person since your first message
- Allows for zooming in on specific date ranges
- Data can be changed to show
+ Messages with that person compared to all other messages sent during that time period
+ Your sent vs received messages with that person over time
+ Your sent vs received words with that person over time
+ **Pie Chart**
- Sent messages vs received messages with person
- Sent words vs received words with that person
- Total messages with person vs all other messages in inbox
+ **Bar Chart**
- Sent vs received messages per hour of day --> When y'all talk the most
- Sent vs received words per hour of day --> When y'all talk the most
- Percentage of total messages with person per hour of day vs percentage of all other messages with other people per hour of day --> When y'all talk the most in comparison to when you mainly talk to everyone else---
#### Features in implementation:
- Statistics on actual messaging habits
+ Average reply time over the course of a day
- Autoreply based on replies to certain messages --> Machine Learning---
## Screenshots
- Scroll to the bottom to see beginning flow
A graph of all messages with a person over the course of a year.
This person seems like a good friend---

Zooming in on that graph---

Clicking on a point shows the y-value above it.---

Graphing message frequency with another one.
This seems like a broken-off friendship---

Overlaying the messages with a friend (white) with all other messages on that day (green)---

Zooming in on that overlay---

Sent vs Received messages---

Sent vs Received words---

Pie chart of sent vs received messages---

Pie chart of sent vs received words---

Pie chart of total messages to that person vs all other messages---

When y'all send the most amount of messages to each other throughout the day---

When y'all type the most to each other throughout the day---

That conversation vs all other conversations throughout the day---

A percentage breakdown of that conversation vs all other conversations throughout the day---

How that can vary from person to person---

More analysis screen- Shows all messages sent and received
- Shows the total word count, sent and received
- Shows the average word per message
- Shows all words for each participant in order of freuency
- All messages are displayed on tableview at bottom of the screen
---

More analysis screenClicking on a date in the calendar on the bottom left
- Shows above statistics but on that date
+ Includes recalculating word frequencies, words sent and received on date, and average word/message on date ("Avg. Word/Message (D)")
- Shows messages sent on that day
- Pressing "Clear" resets everything to the initial screen---

View full conversations - all at once - with a person, starting from the first interaction
Also shows delivered/read receipts for each person---

View messages sent on a certain date (no messages)---

View messages sent on a certain date (messages)---

Searching for text brings up contacts + contacts with messages that match the text.
Pressing Enter brings up the next text occurence.
Message occurrences are highlighted in yellow and pressing enter scrolls to the next occurrence---

Attachments sent are shown in a message.
Clicking on them opens a popup with that attachment---

For multiple attachments in a message, the popup allows scrolling through each attachment as well as the ability to open each attachment in the right application---

Movie attachments and PDFs are also shown and movies begin playing automatically---

Double clicking a contact shows quick statistics and gives the option to view more icon (circle icon)